我知道如何使用 sed 进行删除和替换,但是我在使用 append 命令时遇到了问题。现在,我正在这样做:
sed -i '' -e '/optima/d' file
这将从文件中删除正确的行(假设它存在)。但是,我还想在文件末尾添加另一行,我不能在第二行使用“echo something >> file”。我什至不能使用第二次 sed 调用。
这样做的语法是什么?
这里更好的方法是打印除要删除的行之外的所有内容,然后附加最后一行。即使您要删除的行是最后一行,这也有效,而 Kent 的方法不适用于这种情况。
sed -i -n -e '/optima/!p' -e '$asomething' file
例子:
$ seq 5 | sed -n -e '/5/!p' -e '$asomething'
1
2
4
something
我还想在文件末尾添加另一行...
尝试这个:
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