1

我知道如何使用 sed 进行删除和替换,但是我在使用 append 命令时遇到了问题。现在,我正在这样做:

sed -i '' -e '/optima/d' file

这将从文件中删除正确的行(假设它存在)。但是,我还想在文件末尾添加另一行,我不能在第二行使用“echo something >> file”。我什至不能使用第二次 sed 调用。

这样做的语法是什么?

4

2 回答 2

4

这里更好的方法是打印除要删除的行之外的所有内容,然后附加最后一行。即使您要删除的行是最后一行,这也有效,而 Kent 的方法不适用于这种情况。

sed -i -n -e '/optima/!p' -e '$asomething' file

例子:

$ seq 5 | sed -n -e '/5/!p' -e '$asomething'
1
2
4
something
于 2016-11-16T12:10:30.820 回答
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
于 2013-03-26T13:43:36.270 回答