我有一个脚本文件,我需要用另一个脚本修改,在第8行插入一个文本。

要插入的字符串:Project_Name=sowstest,到一个名为start的文件中。

我尝试使用awk和sed,但我的命令变得混乱。


当前回答

sed -i "" -e $'4 a\\\n''Project_Name=sowstest' start

这一行在macOS中工作正常

其他回答

sed -i '8i This is Line 8' FILE

在第8行插入

This is Line 8

进入文件

-i直接修改文件file,不输出到stdout,正如glenn jackman在注释中提到的那样。

sed -i "" -e $'4 a\\\n''Project_Name=sowstest' start

这一行在macOS中工作正常

awk的答案

awk -v n=8 -v s="Project_Name=sowstest" 'NR == n {print s} {print}' file > file.new

一个成功的答案

ed file << END
8i
Project_Name=sowstest
.
w
q
END

. 在它自己的行结束输入模式;w写道;q退出。GNU ed有一个wq命令来保存和退出,但旧ed没有。

进一步阅读:https://gnu.org/software/ed/manual/ed_manual.html

在Linux中添加2行可以很好地工作。

sed '2s/$/ myalias/' file