【问题标题】:Combining several SED impressions [duplicate]结合几个 SED 印象[重复]
【发布时间】:2019-09-15 17:22:41
【问题描述】:

我正在使用这两个通过管道连接的 sed 表达式

sed -e "1 i\MODEL" file.txt | sed -e 's/END/ENDMDL/g' > output.txt

到 1) 在 text.txt 的第一行添加“MODEL”,然后在同一文件中将 END 替换为 ENDMDL。

如何通过一个 SED 命令(从而避免管道)而不是生成新文件而是替换现有文件来使这两种操作都可能? 最后我想知道如何在文件的最后一行添加一些东西?

【问题讨论】:

    标签: bash text sed


    【解决方案1】:

    您可以通过使用多次出现的-e <command> 选项或将它们与; 连接来指定多个命令:

    sed -e "1 i\MODEL" -e 's/END/ENDMDL/g' file.txt
    sed -e '1 i\MODEL;s/END/ENDMDL/g' file.txt
    

    您可以使用$ 指定结束行:

    sed -e "$ i\ENDMODEL" file.txt
    

    【讨论】:

      猜你喜欢
      • 2015-01-30
      • 2015-01-29
      • 2015-11-13
      • 2012-06-05
      • 2018-11-19
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 2011-12-01
      相关资源
      最近更新 更多