Text-Processing
如何向 sed 或 awk 流添加頁眉和/或頁腳?
我有一堆通過 sed 和 awk 的輸出。
如何在輸出前面加上 START 並在答案後面加上 END?
例如,如果我有
All this code on all these lines and all these
我怎麼能得到:
START All this code on all these lines and all these END
?
我的嘗試是:
awk '{print "START";print;print "END"}'
但我得到了
... START All this code END START on all these lines END START and all these END
如jasonwryan所示,此方法有效:
awk 'BEGIN{print "START"}; {print}; END{print "END"}'
這可以
sed
用sed -e $'1i\\\nSTART' -e $'$a\\\nEND'
1i
表示我在第 1 行之前插入;$a
表示最後一行之後的追加**。**$'…'
語法是特定於 bash 的。在其他 shell 中,您應該能夠通過以下方式執行此操作:sed -e '1i\ Enter START' -e '$a\ Enter END'Enter
警告:問題是“我有一堆輸出……”如果您在沒有數據的情況下執行上述命令,您將不會得到任何輸出,因為該命令取決於實際存在 第一行和最後一行。即使輸入為空,其他兩個答案也會給出頁眉和頁腳。