如何使用 echo 命令在最后一行之前附加多行

如何使用 echo 命令在最后一行之前附加多行
{  
  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

您可以使用headwithecho来实现此目的

  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>

相关内容