Chinaunix

标题: sed中h g的问题,sed and awk 2Nd Edition问题二 [打印本页]

作者: davidbreathe    时间: 2014-02-07 16:47
标题: sed中h g的问题,sed and awk 2Nd Edition问题二

最近在读sed and awk 2Nd Edition这本书,刚看到h g 这些命令。到目前为止发现书中的例子全是多行拼写的。如6.3 Hold that line中的如下例子:

cat testfile4
1
2
11
22
111
222

目的将含有1和2的行对换。最终结果为:

2
1
4
22
11
222
111

书中的命令为:
sed '/1/{
h
d}
/2/{
G}' testfile4

想转换成一行命令,经过几次错误后,正确的为:sed  "/1/{h;d}; /2/{G}" testfile4

其中有一点不太明白,就是标红的分号,为什么要加一个分号?若是没有分号,则会报错:sed: -e expression #1, char 10: extra characters after command


作者: yestreenstars    时间: 2014-02-07 19:13
语法就是这样规定的,没有为什么,建议不要纠结于这类问题。
作者: davidbreathe    时间: 2014-02-08 10:46
回复 2# yestreenstars


    好的,但是什么样的语法?
作者: jackhuntcn    时间: 2014-02-08 11:10
这个道理跟shell命令一样的。两个命令写在同一行要用分号隔开。
作者: davidbreathe    时间: 2014-02-08 11:20
回复 4# jackhuntcn


    好的,多谢!




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