将双反斜杠双引号替换为 Sed Linux



我想在用 \\' 处理我的文件之前替换 \\",然后在处理文件后,我需要将 \\' 替换回 \\"。

输入文件测试替换

"dsd" "N" "gary\""
"ghj" "fandango\"" "N"
"jjj"" "hjh" "gfgfgfg\"
"ee" "gg"" "N"

使用 sed 将//" 替换为//' 时出现问题。我使用了以下命令。

sed "s/\\"/\\'/g" testreplace > testreplaceopt

但是这个命令也用\'替换了\",但我想在只有两个反斜杠时替换

处理文件后,我尝试使用以下命令将 \\' 替换回 \\">

sed "s/\\'/\\"/g" testreplaceopt > testreplace_back

但它没有被替换

任何帮助将不胜感激。

sed 替换可以使用不同的分隔符。

在 sed 语句中使用哈希字符或加号字符,在双引号中使用单引号。

我想提到的另一件事是使用双反斜杠字符,而不是在单引号语句中为每个反斜杠字符使用一个。

例如:

$ cat /tmp/aa |sed -r 's+\\"+\\'"'"'+g'
"dsd" "N" "gary\'"
"ghj" "fandango\'" "N"
"jjj"" "hjh" "gfgfgfg\'
"ee" "gg"" "N"

或者,如果您想在 sed 语句中使用"+"字符而不是"/":

$ cat /tmp/aa |sed -r 's+\\"+\\'"'"'+g'
"dsd" "N" "gary\'"
"ghj" "fandango\'" "N"
"jjj"" "hjh" "gfgfgfg\'
"ee" "gg"" "N"

在 sed 中使用不同的分隔符

我希望它有所帮助

相关内容

  • 没有找到相关文章

最新更新