如何在mac上使用sed插入一行附加到文件的新行?

时间:2014-02-28 00:51:38

标签: shell sed

我想插入文本行,让“hello”到文件的第3行。并且应该添加一个新行:

1st
2nd
Hello

3rd

我该怎么做?

4 个答案:

答案 0 :(得分:2)

使用awk非常简单:

$ cat file
1
2
3
4
5
6

$ awk 'NR==3{print "hello\n"}1' file
1
2
hello

3
4
5
6

其中NR是行号。您可以将其设置为您要插入文本的任何数字。

答案 1 :(得分:1)

它必须是sed吗?

head -2 infile ; echo Hello ; echo ; tail +3 infile

答案 2 :(得分:1)

$ sed '3s/^/Hello\n\n/' file.txt
1st
2nd
Hello

3rd

3命令开头的sed指定该命令应仅应用于第3行。因此,命令3s/^/Hello\n\n/在“Hello”中替换,并且在第3行的开头(^匹配行的开头)有两个新行。否则,文件保持不变。

答案 3 :(得分:0)

sed '3 i\
Hello\
' YopurFile

在第3行插入以下行(前面有\