Chinaunix

标题: sed删除空行失效,求指点,谢谢 [打印本页]

作者: Leo_Li02    时间: 2014-10-24 06:15
标题: sed删除空行失效,求指点,谢谢
test_file 测试文件内容为下面一行字符串,另外还有3个空行:
.Ah "Major Heading"



目标:要把他换成@A HEAD = Major Heading,并删除后面的3个空行。

1. 我写了个脚本sedscr,执行sed -f sedscr test_file,为什么删除不掉那三个空行?
/^\.Ah/{
/^$/d
s/^\.Ah */@A HEAD = /g
s/"//g
}

2. 但是我直接命令行敲下面命令就可以删除掉空行。
sed '/^$/d' test_file

求指点,谢谢。

作者: yinyuemi    时间: 2014-10-24 06:50
删偏了...
把/^$/d放到外面
作者: 欧阳西风    时间: 2014-10-24 08:52
回复 1# Leo_Li02


    /^\.Ah/{
s/^\.Ah */@A HEAD = /g
s/"//g
}
/^$/d

你要是放到大括号里面的话,首先需要匹配/^\.Ah/才会执行大括号里面的内容,那样是匹配不到你想删除的空行的。
作者: yestreenstars    时间: 2014-10-24 09:03
把刀藏起来怎么杀人~{:3_193:}
作者: bulletmarquis    时间: 2014-10-24 09:18
/^$/d放在括号里面,要在括号里面先写N;
作者: jcdiy0601    时间: 2014-10-24 09:21
本帖最后由 jcdiy0601 于 2014-10-24 09:22 编辑

因为你匹配到的行里面没有空行
作者: Leo_Li02    时间: 2014-10-24 22:15
终于明白了,真心感谢大家,谢谢了!




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