{
This is test1
this is test2
this is test3
}
现在我想使用 echo 命令在最后一行之前附加多行任何人请帮助我!!!!
我的输出如下所示
{
This is test1
this is test2
this is test3
this is test4
this is test5
}
使用回声非 sed 或 awk 命令
答案1
sed
是执行此操作的正确方法,即使您说您出于某种原因不想使用sed
.
sed 脚本看起来像
$i\
this is test4\
this is test5
你可以将其运行为sed -f script.sed file
.该i
命令在寻址行之前插入行,并$
寻址文件的最后一行。
作为使用 GNU 的“一行” sed
:
$ sed -e '$i\' -e ' this is test4\' -e ' this is test5' file
{
This is test1
this is test2
this is test3
this is test4
this is test5
}
根据文件实际上是 JSON 文件还是其他结构化文本格式,可能有类似的工具jq
更适合操作它。
按照您的要求使用echo
(这也假设您使用的head
是 GNU coreutils,因为该-n
选项通常不采用负数):
{ head -n -1 file
echo ' this is test4'
echo ' this is test5'
tail -n 1 file; } >newfile
答案2
您可以使用head
withecho
来实现此目的
cat <outputfilename> | head -n -1 && echo -e " this is test4\n this is test5\n this is test6\n}"
如果要将输出附加到文件中,只需使用“ >
”输出重定向
(cat <outputfilename> | head -n -1 && echo -e " this is test4\n this is test5\n this is test6\n}") > <RESULTFILENAME>