如何使用sed在ubuntu中的文件末尾添加多个换行符

时间:2017-10-13 06:57:52

标签: linux ubuntu sed

输入文件

ABC
DEF

输出文件

ABC
DEF


GHI

我正在使用

sed -i -e '$a\\GHI ' input.txt

但它增加了GHI,但没有增加2行新行

ABC
DEF
GHI

3 个答案:

答案 0 :(得分:2)

由于您已标记linux,我假设您拥有GNU sed且\n已被识别

$ cat ip.txt 
ABC
DEF
$ sed '$a\\n\nGHI' ip.txt
ABC
DEF


GHI

工作后添加-i选项


GNU sed不需要在\命令之后使用a,但有自己的用例。因此,前一个示例中的\\n开始。有关详细信息,请参阅GNU sed manual

$ echo 'foo' | sed '$a123'
foo
123
$ echo 'foo' | sed '$a 123'
foo
123
$ echo 'foo' | sed '$a\ 123'
foo
 123


此外,无需sed

即可轻松完成此操作
$ printf '\n\nGHI\n' >> ip.txt 
$ cat ip.txt 
ABC
DEF


GHI

答案 1 :(得分:0)

使用 \ n 更改行 例如,文件1.txt

11111
222222

sed -i '$s/$/\n\n\n333333\n4444444444/' 1.txt

解释:首先'$'表示文件的最后一行,第二'''表示行尾。

结果:

11111
222222


333333
4444444444

答案 2 :(得分:0)

这可能适合你(GNU sed):

sed '$!b;G;G;aGHI' file

在模式空间中附加几个换行符,然后将GHI附加到输出流。

N.B。在输出流之前打印模式空间。

或明确地:

sed '$G;$G;$aGHI' file