【问题标题】:merging matched lines with sed用 sed 合并匹配的行
【发布时间】:2013-01-23 10:52:04
【问题描述】:

我在这里看到了一些答案,但无法让它们对我有用。 我有这样的文字:

line1
line2 text=^M
line3
line4

基本上我需要的是用空字符替换=^M\n,比如s/=^M\n//,所以输出是(^M是特殊字符ctrl+v ctrl+m)

line1
line2 textline3
line4

我知道这是一些 sed 分支,但我无法让它们工作。

【问题讨论】:

    标签: sed


    【解决方案1】:

    一种方式:

    $ sed '/^M/{N;s/=^M\n//;}' file
    line1
    line2 textline3
    line4
    

    其中 ^M 必须输入为:Ctrl-V + Ctrl-M

    【讨论】:

      【解决方案2】:

      awk 解决方案

       #awk -f myawk.sh temp.txt
         BEGIN { print "Start Records"}
         {
             if ($2 ~ /=\^M/){
                 a=$1;
                 gsub("=\\^M","",$2);
                 b=$2; f=1
             }
             else {
                if(f==1){
                    print a""b""$0;
                    a="";
                    b="";
                }else{
                print $0
                }
            }
        }
        END {print "Process Complete"}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-15
        • 2022-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多