【问题标题】:sed - join two commands, number linessed - 连接两个命令,数字行
【发布时间】:2021-10-23 01:56:21
【问题描述】:

我正在尝试对行进行编号,但是我需要使用sed的-i参数,我该如何加入这两个命令?

sed '=' file.txt | sed 'N;s/\n/ => /'

【问题讨论】:

    标签: sed numbers line


    【解决方案1】:

    除了使用 -i 之外,还有其他方法可以重写文件

    使用 moreutils 包中的 sponge

    sed '=' file.txt | sed 'N;s/\n/ => /' | sponge file.txt
    

    使用临时文件

    tmp=$(mktemp)
    sed '=' file.txt | sed 'N;s/\n/ => /' > "$tmp" && mv "$tmp" file.txt
    

    或者,如果你不必使用 sed,GNU awk

    gawk -i inplace '{print NR, "=>", $0}' file.txt
    

    或perl

    perl -i -pe 's/^/$. => /' file.txt
    

    【讨论】:

      【解决方案2】:

      这可能对你有用(GNU sed):

      sed -zi 's/\n$//;s#.*#echo "&"|sed =|sed "N;s/\\n/ => /"#e' file
      

      在 sed 调用中运行 sed 管道。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 2010-12-09
        • 2011-12-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-11
        • 2015-01-30
        相关资源
        最近更新 更多