Echo

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

  • June 19, 2018
{  
 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  
}  

使用Echo命令而不是 sed 或 awk

您可以使用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>

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

引用自:https://unix.stackexchange.com/questions/450547