将字符串添加到特定行号的文件
我想在Linux中的特定行号处添加一个字符串到文件。我搜查,发现像这样的命令:将字符串添加到特定行号的文件
sed "5i helloworld" test.txt
在5号线加helloworld
,但我得到了一个错误:
sed: command garbled.
似乎对sed的Solaris不支持选项-i
。我在这里测试RedHat。有没有其他的命令可以在这里使用?任何其他方式?
如何键入命令如i
,a
和c
,旧版seds有点挑剔。尝试实际续行:
sed '5i\
helloworld' test.txt
的i text
语法是GNU扩展。 POSIX sed只知道带有换行符的i\
版本。
另外,注意有和-i
选项(就地编辑)关于sed i
命令 (插入文本)之间的差。
或 “功能”。
_可选reading_:总结术语对话:[_POSIX_ spec](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html)和[_BSD_ Sed man page](https:/ /www.freebsd.org/cgi/man.cgi?query=sed&sektion=&n=1)调用脚本中可用的功能单元 - 例如'i' - 一个_function_和一个_instance of calling_这样的单元(名称函数加上它的参数)_command_。相比之下,[_GNU_ Sed的手册页](https://www.gnu.org/software/sed/manual/sed.html#Common-Commands)并未作出此区分,而_only_使用术语_command_。 – mklement0
感谢您的意见。现在它适用于我。 – Richard
这里是awk
解决方案:
awk 'NR==5{1;print "Hey there this is new text added on line 5"}1' inputfile
您正在使用Linux或Solaris? – miken32
@ miken32 linux在这里。 – Richard
那么你会有什么工作,你为什么提到Solaris? – miken32