Unix 使用awk将反斜杠后跟换行符替换为空格
我有一个文件,其内容如下:Unix 使用awk将反斜杠后跟换行符替换为空格,unix,awk,newline,Unix,Awk,Newline,我有一个文件,其内容如下: string1 = string2.a \ string3.a \ string4.a string5 = random 需要的输出文件是: string1 = string2.a string3.a string4.a string5 = random 我尝试了以下几点: gawk '{ gsub(/\\n/," ");print }' inputfile > outputfile 但它没有起作用。有什么建议吗?
string1 = string2.a \
string3.a \
string4.a
string5 = random
需要的输出文件是:
string1 = string2.a string3.a string4.a
string5 = random
我尝试了以下几点:
gawk '{ gsub(/\\n/," ");print }' inputfile > outputfile
但它没有起作用。有什么建议吗?如果您不局限于awk,那么以下是一个sed解决方案:
我不知道是否真的有“\”,如果有,请根据需要使用
gsub()
。我收到您的命令集的变量语法错误消息。@ankush,“变量语法错误”是什么?请显示实际的错误消息。您是否准确地剪切并粘贴了此代码?我是此脚本的新手。但仍在尝试您的命令会导致出现以下错误消息:“f&&/=/{s=”“;:未找到事件”
awk '
/\\$/ {
sub(/^[[:space:]]+/, "") # trim leading whitespace
sub(/[[:space:]]+\\$/, " ") # remove the trailing backslash
line = line $0
next
}
line {
printf("%s", line)
line = ""
sub(/^[[:space:]]+/, "")
}
1
'
awk '!f&&/=/{s=""; s=s FS $0;f=1;next}f&&!/=/{s=s FS $0}f&&/=/{f=0;print s;print;next} ' file
awk '
/\\$/ {
sub(/^[[:space:]]+/, "") # trim leading whitespace
sub(/[[:space:]]+\\$/, " ") # remove the trailing backslash
line = line $0
next
}
line {
printf("%s", line)
line = ""
sub(/^[[:space:]]+/, "")
}
1
'