【发布时间】: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
我在这里看到了一些答案,但无法让它们对我有用。 我有这样的文字:
line1
line2 text=^M
line3
line4
基本上我需要的是用空字符替换=^M\n,比如s/=^M\n//,所以输出是(^M是特殊字符ctrl+v ctrl+m)
line1
line2 textline3
line4
我知道这是一些 sed 分支,但我无法让它们工作。
【问题讨论】:
标签: sed
一种方式:
$ sed '/^M/{N;s/=^M\n//;}' file
line1
line2 textline3
line4
其中 ^M 必须输入为:Ctrl-V + Ctrl-M
【讨论】:
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"}
【讨论】: