我在UNIX上有一个百万行的文本文件,如下所示:
"item"
"item"
"item"
"item"
我使用sed -i "s/$/,/g" filename > new_file
在每行末尾添加逗号。
我的期望是这样的:
["item",
"item",
"item",
"item"]
现在,我只是使用Vim手动编辑。无论如何在开头添加括号并自动结束并删除最后一行的逗号?所以,我可以写一个bash脚本来整齐地处理这些文本文件。
谢谢!
答案 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
脚本。)