|

楼主 |
发表于 2005-5-25 12:01:52
|
显示全部楼层
21,如何用shell去处文件里特定的行?
http://www.linuxsir.cn/bbs/showt ... 9&highlight=sed
具体:例如
25%gfdghfhghgh
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
25%gfdkgjfkjgjkkk
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
25%agdfgdfgfdgg
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
我该怎么做才能把25%开始的那行和下面的一个空行去掉?
解答参考:
a,sed
- cat tmp|sed -e '/^25%/d' -e '/^$/d'
复制代码
b,删除空行的方法:
- sed '/^$/d' file
- tr -s "\n" file
- for i in $(cat file);do echo $i;done
复制代码
22,sed替换功能中变量如何表示?
http://www.linuxsir.cn/bbs/showt ... 2&highlight=sed
具体:脚本如下:
#!/bin/bash
IP1=`cat /tmp/ip1`
IP2=`cat /tmp/ip2`
sed -e 's/$IP1/$IP2/g' /tmp/test.txt
此脚本未把/tmp/test.txt文件中的包含/tmp/ip1的内容字符替换为/tmp/ip2中的字符
解答参考:
- sed -e s/${IP1}/${IP2}/g /tmp/test.txt
复制代码
23,怎么把大写子母转换成小写?
http://www.linuxsir.cn/bbs/showt ... 2&highlight=sed
具体:pdb1TRF.ent.Z
pdb2PNI.ent.Z
Apdb2PDE.ent.Z
pZdb1EGR.ent.Z
pdb1ATX.ent.Z
pdb1EPS.ent.Z
pdb1ERG.ent.Z
pdb1PNH.ent.Z
pdb1EFM.ent.Z
pdb1POU.ent.Z
pdb2AT2.ent.Z
Zpdb1ERP.ent.Z
Zpdb1BAL.ent.Z
需要把里面除最后的Z以外的大写子母改成小写该怎么实现?
解答参考:
a,sed
- cat tmp|tr A-Z a-z|sed 's/z$/Z/g'
复制代码
b,
- for i in $(cat tmp|awk -F. '{print $1"."$2}');do echo "$(echo $i|tr A-Z a-z).Z";done
复制代码
24,我要实现这个功能该怎么做?
http://www.linuxsir.cn/bbs/showt ... 5&highlight=sed
具体:我的家目录有一个Develop目录
1.我想将该目录下面的所有java文件选出
2.找到作者是我的文件(@author jimmy)
3.最后在这些文件中搜索所有包含有Hashmap的行
(当然也可以考虑直接将他改为HashMap)
我是这么做的,
find /home/jimmy/Develop -name "*java*" -exec grep jimmy -l {} \;
这么做的结果是完成了前两步.输出如下
/home/jimmy/Develop/Users.java
/home/jimmy/Develop/Services.java
/home/jimmy/Develop/Status.java
我想使用:
find /home/jimmy/Develop -name "*java*" -exec grep jimmy -l {} \; | grep Hashmap -n
却行不通
解答参考:
- grep Hashmap -n `find /home/jimmy/Develop -exec grep jimmy -l {} \;`
复制代码- ls -l|grep username|find . -name "filename"|xargs grep -l "string"
复制代码- sed -ne 's/Hashmap/HashMap/gp' `find /home/jimmy/Develop -exec grep jimmy -l {} \;`
复制代码
25,怎样转换以下文档??
http://www.linuxsir.cn/bbs/showt ... 4&highlight=sed
具体:转换以下文档:
Joey: What, like there's a rule or something?
(The door buzzer sounds and Chandler gets it.)
Chandler: Please don't do that again, it's a horrible sound.
Paul: (over the intercom) It's, uh, it's Paul.
Monica: Oh God, is it 6:30? Buzz him in!
Joey: Who's Paul?
转换成:
{\bf Joey:} What, like there's a rule or something?
(The door buzzer sounds and Chandler gets it.)
{\bf Chandler:} Please don't do that again, it's a horrible sound.
{\bf Paul:} (over the intercom) It's, uh, it's Paul.
{\bf Monica:} Oh God, is it 6:30? Buzz him in!
{\bf Joey:} Who's Paul?
解答参考:
- cat tmp|sed 's/^\([[:alpha:]]*:\)/{\\bf\ \1}/g'
复制代码 |
|