【问题标题】:Double spacing file using sed in shell script在 shell 脚本中使用 sed 的双倍行距文件
【发布时间】:2012-02-19 00:14:40
【问题描述】:

我是 shell 脚本的新手,我使用以下代码将文件加倍(输入文件是一个参数):

sed G $input_file >> $input_file

问题是,如果我的原始文件的内容是:

Hi
My name is

我的双倍行距文件是:

Hi
My name is
Hi

My name is

我是否需要在 shell 脚本中添加其他内容,以便我的文件仅是:

Hi

My name is

【问题讨论】:

    标签: shell unix sed


    【解决方案1】:

    您正在使用附加运算符 (>>),它附加到相关文件。话虽如此,您通常也不能在 bash 中使用> 操作并输出到同一个文件。对于sed 的具体情况,您可以使用-i 选项(取决于版本和平台):

    sed -i G $input_file
    

    如果您的版本具有该选项,那应该“就地”编辑您的文件。我说“就地”是因为我很确定它实际上会为您创建一个新文件并将其移回第一个文件的顶部(inode 不同)。如果没有,您将输出到一个单独的文件,然后将文件移回:

    sed G ${input_file} > ${input_file}.bak
    mv ${input_file}.bak ${input_file}
    

    【讨论】:

    • 我以前用过 (>) 但没用,谢谢你帮我解决这个问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多