Chinaunix

标题: shell sed 问题请教 [打印本页]

作者: fjfd    时间: 2009-09-26 18:08
标题: shell sed 问题请教
截掉文件中的某些特殊段,如下:
a文件内容如下

aaaaaa
bbbbbb
cccccc
/
sddadfa
dfaklga
dasfs

bbbbbb
cccccc
dddddd
/
sdf
asaf
ghhh


我想把这个文件中的所有从/到)中的行删除,用shell怎么写?

beg=1
for loop in `grep -n '/'  a.txt|awk -F: '{print $1}'`
do
        end=`expr $loop - 1`
        sed -n "${beg},${end}p" a.txt >> b.txt
        beg=`sed -n "${end},/^)/=" a.txt|tail -1`
        beg=`expr $beg + 1`
done

sed某些版本好像不支持双地址显示行 sed '123,/test/=' test.txt

[ 本帖最后由 fjfd 于 2009-9-26 18:16 编辑 ]
作者: 寂寞烈火    时间: 2009-09-26 18:20
sed ‘/\//,/)/d'
作者: lucash    时间: 2009-09-26 18:58
awk '/\//,/\)/{next}1' file

[ 本帖最后由 lucash 于 2009-9-26 19:31 编辑 ]
作者: MYSQLER    时间: 2009-09-26 19:15
awk '/\//,/\)/{next}1' file
awk '/\//,/\$/{next}1' urfile
作者: blackold    时间: 2009-09-26 22:55
address range
作者: 爱斯基摩寂寞    时间: 2009-09-27 08:49
原帖由 blackold 于 2009-9-26 22:55 发表
address range

能解释下吗 不太明白
作者: blackold    时间: 2009-09-27 08:58
标题: 回复 #6 爱斯基摩寂寞 的帖子
就是两个地址
addr1,addr2
从addr1开始,到addr2结束。参考man
作者: haimming    时间: 2009-09-27 10:18
标题: 回复 #6 爱斯基摩寂寞 的帖子
查了下词典
address :地址
range :范围
黑哥是在灌水
作者: nuclearxin    时间: 2009-09-27 10:24
如果出现不对称 就会出现问题
ps.灌水




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2