0

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

line1
line2 text=^M
line3
line4

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

line1
line2 textline3
line4

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

4

2 回答 2

1

单程:

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

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

于 2013-01-21T12:16:07.747 回答
1

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"}
于 2013-01-23T02:40:06.483 回答