我知道如何用sed进行删除和替换,但是我在使用append命令时遇到了麻烦。现在,我这样做:
sed -i '' -e '/optima/d' file
这将从文件中删除正确的行(假设它存在)。但是,我还想在文件的末尾添加另一行,我不能在第二行使用“echo something>> file”。我甚至无法使用第二个sed调用。
这样做的语法是什么?
答案 0 :(得分:2)
这里更好的方法是打印除要删除的行之外的所有行,然后追加最后一行。即使你要删除的行是最后一行,这也是有效的,而Kent的方法对于这种情况不起作用。
sed -i -n -e '/optima/!p' -e '$asomething' file
示例:
$ seq 5 | sed -n -e '/5/!p' -e '$asomething'
1
2
4
something
答案 1 :(得分:0)
我还想在文件末尾添加另一行...
试试这个:
sed -i '' '/optima/d; $a \something' file
示例:
kent$ seq 20|sed '/3/d; $a \yourText'
1
2
4
5
6
7
8
9
10
11
12
14
15
16
17
18
19
20
yourText