如何在UNIX上的文本开头和结尾添加括号

时间:2014-08-04 20:25:35

标签: unix text process

我在UNIX上有一个百万行的文本文件,如下所示:

"item"
"item"
"item"
"item"

我使用sed -i "s/$/,/g" filename > new_file在每行末尾添加逗号。

我的期望是这样的:

["item",
"item",
"item",
"item"]

现在,我只是使用Vim手动编辑。无论如何在开头添加括号并自动结束并删除最后一行的逗号?所以,我可以写一个bash脚本来整齐地处理这些文本文件。

谢谢!

1 个答案:

答案 0 :(得分:2)

sed -e '1s/^/[/' -e 's/$/,/' -e '$s/,$/]/' file_name > new_file

唯一有趣的是用近方括号替换添加到最后一行的逗号。

另请注意,使用-i表示标准输出没有输出。使用-i或使用I / O重定向,但不能同时使用两者。 (如果你是一个可移植性的坚果 - 就像我一样 - 请注意,Mac OS X或BSD sed支持-i但需要备份后缀。它会很乐意使用{{1} }作为后缀,如果-e之后有-e,或者如果您没有指定-i则使用sed脚本 - 但是它抱怨文件名不是有效的-e脚本。)