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

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

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


当前回答

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

这一行在macOS中工作正常

其他回答

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在注释中提到的那样。

awk的答案

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

OS X / macOS / FreeBSD sed

-i标志在macOS sed和GNU sed上的工作方式不同。

下面是在macOS / OS X上使用它的方法:

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

更多信息见男子1 sed。

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

sed '2s/$/ myalias/' file