Bash 用AWK替换某些特殊代码

Bash 用AWK替换某些特殊代码,bash,awk,Bash,Awk,假设我有一个名为somedata.txt的文件,我正在尝试替换: \" 与 " i、 e.删除\ 我正试图用AWK来做这件事。你能帮忙吗 您需要同时转义字符\和“,如下所示 awk '{gsub("\\\\\"", "\"")}1' somedata.txt 或者,如果您可以使用sed,它会变得更简单 sed 's/\\"/"/g' somedata.txt sed还允许就地编辑(flag-i)更新原始文件 sed -i 's/\\"/"/g' somedata.txt 您需要同时转义字符

假设我有一个名为somedata.txt的文件,我正在尝试替换:

\"

"

i、 e.删除\
我正试图用AWK来做这件事。你能帮忙吗

您需要同时转义字符
\
,如下所示

awk '{gsub("\\\\\"", "\"")}1' somedata.txt
或者,如果您可以使用
sed
,它会变得更简单

sed 's/\\"/"/g' somedata.txt
sed
还允许就地编辑(flag
-i
)更新原始文件

sed -i 's/\\"/"/g' somedata.txt

您需要同时转义字符
\
,如下所示

awk '{gsub("\\\\\"", "\"")}1' somedata.txt
或者,如果您可以使用
sed
,它会变得更简单

sed 's/\\"/"/g' somedata.txt
sed
还允许就地编辑(flag
-i
)更新原始文件

sed -i 's/\\"/"/g' somedata.txt

您也可以在vim编辑器中打开文件并尝试以下操作: 按esc键,然后按

:%s_oldString_newString_g
就你的情况而言,这是

:%s_\\\"_\"_g

由于“和\是特殊字符,您需要在字符前添加\以执行命令。

您也可以在vim编辑器中打开文件并尝试以下操作: 按esc键,然后按

:%s_oldString_newString_g
就你的情况而言,这是

:%s_\\\"_\"_g

由于“和\是特殊字符,因此需要在字符前添加\以执行命令

到目前为止你尝试了什么?我真的不太擅长这个,我不知道如何处理语法。正在尝试使用八进制代码:awk'{gsub(“\134\042“,“\042”)}1”somedata.txt到目前为止您尝试了什么?我真的不太擅长这个,我不知道如何处理语法。尝试使用八进制代码:awk'{gsub(“\134\042”“,“\042”)}1”somedata.txtIn awk斜切的regexp不带引号的包含regexp的字符串越来越近:
awk'{gsub(/\\”/,“\\”)}1'
awk-vq=\“{gsub(/\\”,q)}1'
,谢谢大家@Pradip我从来没有使用过sed,有没有一种方法可以将两种方法结合起来查找/替换并更新原始文件?我还需要用新行替换\n。我使用awk实现了这一点:awk'{gsub(/\\n/,“\n”)}1'somedata。txt@dave_thompson_085:感谢@charledget提供指针:可以使用分号组合多个查找/替换表达式
(在
sed
awk
中)在这种情况下,
awk-i替换了“{gsub(/\\”/,“\”);gsub(/\\\n/,“\n”)}1”somedata.txt
,在awk斜杠的regexp中,包含regexp的不带引号的字符串变得更近了:
awk'{gsub(/\\”/,“\\”)}1'
awk-vq=\\'{gsub(/\\”,q/,谢谢大家@Pradip我从来没有使用过sed,有没有一种方法可以将两种方法结合起来查找/替换并更新原始文件?我还需要用新行替换\n。我使用awk实现了这一点:awk'{gsub(/\\n/,“\n”)}1'somedata。txt@dave_thompson_085:感谢@charledget提供指针:可以使用分号组合多个查找/替换表达式
(在
sed
awk
中)在这种情况下,
awk-i在“{gsub(/\\”/,“\”);gsub(/\\n/,“\n”)}1”somedata.txt