将字符串添加到文件的开头,将另一个字符串添加到文件的末尾

时间:2016-09-29 01:46:43

标签: bash awk sed

这是我的档案

$ cat testjson2
[alot of text]

我想以下结尾:( { "aaData":附加在文件末尾附加的文件}的开头)

{ "aaData": [alot of text] }


到目前为止我得到了什么:

这会在文件开头附加

$ sed '1s/./{ "aaData": &/' testjson2
{ "aaData": [alot of text] } 

这会在文件末尾附加

$ echo } >> testjson2
$ cat testjson2
[alot of text]
}

如何组合它们?也许只是使用sed或我应该只使用这个组合来得到我想要的东西? 只是看看在这里使用sed awk或bash。

2 个答案:

答案 0 :(得分:2)

尝试:

$ sed '1s/^/{ "aaData": /; $ s/$/ }/' testjson2
{ "aaData": [alot of text] }

这使用两个替代命令:

  • 1 s/^/{ "aaData": /将文字添加到第一行的开头。

    第1行

    1次匹配。^匹配行的开头。

  • $ s/$/ }/在最后一行结束后添加文字。

    第一个$匹配文件的最后一行。第二个$匹配在该行的末尾。

答案 1 :(得分:2)

$ awk '{printf "%s%s", (NR>1 ? ORS : "{ \"aaData\": "), $0} END{print " }"}' file
{ "aaData": [alot of text] }