我有以下命令:sed -i -e '/match1/,+2d' filex,在文件"file x"中找到匹配"match1"后删除2行.我想为它添加几个匹配项,比如match1,match 2 ....
所以在找到任何匹配后它会删除2行,我该如何实现呢?
ziu*_*ziu 27
两种方式,取决于sed版本和平台:
sed -e '/match1/,+2d' -e '/match2/,+2d' < oldfile > newfile
Run Code Online (Sandbox Code Playgroud)
要么
sed -e '/match1\|match2/,+2d' < oldfile > newfile
Run Code Online (Sandbox Code Playgroud)
不是sed用户,但在我看来你可以使用:
sed -i -e '/(match1|match2)/,+2d' filex
Run Code Online (Sandbox Code Playgroud)
否则你可以,如果你有可能这样做,那么:
sed -i -e '/match1/,+2d' filex && sed -i -e '/match2/,+2d' filex
Run Code Online (Sandbox Code Playgroud)
编辑:看起来我有正确的想法,但ziu得到了它.
如果我理解正确,你想要
sed -e '/match1/,+2d' input.txt
Run Code Online (Sandbox Code Playgroud)
例如,使用以下命令创建输入seq 10 | sed '3i match1' > input.txt:
1
2
match1
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
的输出sed -e '/match1/,+2d' input.txt将是:
1
2
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34718 次 |
| 最近记录: |