我的文件包含以下格式的内容:
string1 = string2.a \
string3.a \
string4.a
string5 = random
所需的输出文件是:
string1 = string2.a string3.a string4.a
string5 = random
我试过以下:
gawk '{ gsub(/\\n/," ");print }' inputfile > outputfile
但它不起作用。有什么建议吗?
答案 0 :(得分:0)
如果您不仅限于awk,sed FAQ中有一个sed解决方案:
sed -e :a -e '/\\$/N; s/\\\n//; ta' file
答案 1 :(得分:0)
awk '!f&&/=/{s=""; s=s FS $0;f=1;next}f&&!/=/{s=s FS $0}f&&/=/{f=0;print s;print;next} ' file
我不知道是否真的有“\”,如果有,请酌情使用gsub()
答案 2 :(得分:0)
awk '
/\\$/ {
sub(/^[[:space:]]+/, "") # trim leading whitespace
sub(/[[:space:]]+\\$/, " ") # remove the trailing backslash
line = line $0
next
}
line {
printf("%s", line)
line = ""
sub(/^[[:space:]]+/, "")
}
1
'