'NUMBER', 这个方式表示,只对第NUMBER行执行sed的命令:
$ cat func.test #!/bin/bash function test() { echo hello } test ~$ sed -e '3=' func.test -n 3 |
'FIRST~STEP',这个方式表示,对FIRST+N*STEP(N是正整数)的行执行命令:
$ sed -n -e '2~2=' func.test 2 4 6 |
'$',这个方式表示只对最后一行执行命令:
$ sed -n -e '$=' func.test 6 |
/REGEXP/,这种方式表示,只有当前处理的行匹配这里指定的正则表达式才执行命令.:
$ cat func.test #!/bin/bash function test() { echo hello } test ~$ sed -n -e '/\(func\test\)/=' func.test 2 6 |
\%REGEXP%,这种方式和上面的一样,不过把上面的斜扛'/'换成了百分号'%'.这里的百分号也可以任意其他的符号.这样,正则表达式如果有很多斜扛的话,就可以少打很多转义字符:
$ sed -n -e '\@bin/bash@=' func.test 1 |
/REGEXP/I,在正则表达式后面加上I,表示正则表达式对大小写不敏感:
$ cat func.test #!/bin/bash function test() { echo hello } test ~$ sed -n -e '/TEST/I=' func.test 2 6 |
`/REGEXP/M',参见sed(3)--命令对s(替换)命令的M选项的讨论
`ADDR1,+N',这种方式表示从ADDR1这个地址开始,加上后面的N行:
$ sed -n -e '1,+3=' func.test 1 2 3 4 |
`ADDR1,~N',这种方式表示,从ADDR1这个地址开始,直到下一个行号是N的倍数:
$ sed -n -e '1,~2=' func.test 1 2 ~$ sed -n -e '1,~3=' func.test 1 2 3 |
两个地址还可以用逗号隔开写在一起来表示一个地址范围:
$ sed -n -e '2,4=' func.test 2 3 4 |
用'!'可以取返,即除了"这些地址以外":
$ sed -n -e '2,4!=' func.test 1 5 6 |
相关文章:
sed(1)--选项
sed(3)--命令
转载请注明出处 http://fornote.blogspot.com/
没有评论:
发表评论