【问题标题】:How to make sed read its script from a file?如何让 sed 从文件中读取其脚本?
【发布时间】:2010-10-27 08:58:07
【问题描述】:

最近我遇到了以下 grep 命令:

/usr/xpg4/bin/grep -Ff grep.txt input.txt > output.txt

按照我的理解是指从input.txt中,grep grep.txt中的内容,输出到output.txt中。

我想为 sed 做类似的事情,即我想将 sed 命令保存在一个单独的文件中(比如 sed.txt),并希望将它们应用于输入文件(比如 input.txt)并创建一个输出文件(比如输出.txt)。

我尝试了以下操作:

/usr/xpg4/bin/sed -f sed.txt input.txt > output.txt

它不起作用,我收到以下错误:

sed: command garbled

上述文件内容如下:

sed.txt

sed s/234/acn/ input.txt
sed s/78gt/hit/ input.txt

输入.txt

234GH
5234BTW
89er
678tfg
234
234YT
tfg456
wert
78gt
gh23444

【问题讨论】:

    标签: unix sed


    【解决方案1】:

    您的sed.txt 应仅包含sed 命令:不得以sed 为前缀或以输入文件为后缀。在您的情况下,它可能应该是:

    # sed.txt
    s/234/acn/
    s/78gt/hit/
    

    在您的输入上运行时:

    $ /usr/xpg4/bin/sed -f sed.txt input.txt
    
    生长激素 5acn顺便说一句 89er 678tfg acn acnyt tfg456 犯了 打 ghacn44

    【讨论】:

      【解决方案2】:

      与其将 sed 命令保存在单独的文本文件中,不如尝试创建一个 sed 脚本。下面的文件可以直接在您的数据文件上运行:

      ./myscript.sed inputfile.txt > outputfile.txt

      #!/bin/sed -f
      s/234/acn/
      s/78gt/hit/
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多