【问题标题】:How to add bracket at beginning and ending in text on UNIX如何在 UNIX 上的文本开头和结尾添加括号
【发布时间】:2014-08-04 20:25:35
【问题描述】:

我有一个百万行的文本文件要在 UNIX 上进行如下处理:

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

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

我的预期是这样的:

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

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

谢谢!

【问题讨论】:

    标签: unix text process


    【解决方案1】:
    sed -e '1s/^/[/' -e 's/$/,/' -e '$s/,$/]/' file_name > new_file
    

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

    还要注意,使用-i 意味着不会有输出到标准输出。要么使用-i,要么使用I/O 重定向,但不能同时使用。 (如果你像我一样是一个便携爱好者,请注意 Mac OS X 或 BSD sed 支持 -i 但需要后缀用于备份。如果有-e-i 之后,或者如果您没有指定-e,则使用sed 脚本——但它会抱怨文件名不是有效的sed 脚本)。

    【讨论】:

    • 太棒了,非常感谢!!而且,我喜欢你替换最后一个逗号的方法。
    • osx: sed -i '' -e '...' 文件名
    猜你喜欢
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 2012-02-09
    • 2019-01-31
    • 2021-11-04
    • 1970-01-01
    相关资源
    最近更新 更多