在特定行号处将字符串添加到文件

时间:2017-02-22 23:08:34

标签: linux sed

我想在Linux中的某个行号中添加一个字符串到文件。我搜索并找到了一个命令:

sed "5i helloworld" test.txt

在第5行添加helloworld,但收到错误:

  

sed:命令乱码。

似乎Solaris不支持sed选项-i。我在这里测试RedHat。我可以在这里使用其他命令吗?还有其他方法吗?

2 个答案:

答案 0 :(得分:2)

对于iac等命令的输入方式,较旧的seds有点挑剔。尝试实际的续行:

sed '5i\
helloworld' test.txt

i text语法是GNU扩展。 POSIX sed只知道带有换行符的i\版本。

另请注意,sed i 命令 1 (插入文字)和-i 选项之间存在差异(就地编辑)。

1 或"功能"。

答案 1 :(得分:0)

以下是awk解决方案:

 awk 'NR==5{1;print "Hey there this is new text added on line 5"}1' inputfile