如何使用sed将单引号(';)替换为反斜杠,然后替换为单引号(\';)?

如何使用sed将单引号(';)替换为反斜杠,然后替换为单引号(\';)?,sed,terminal,Sed,Terminal,如何用反斜杠替换单引号('),然后使用sed替换单引号(\') sed s/\'/\\\'/ 不起作用,因为你永远无法写出文字 sed ":a;N;s/\'/\\'/g" <file1 >file2 sed:a;N;s/\'/\\'/g“文件2 无法使用,因为反斜杠将不再从引号中转义,它将被视为正则表达式引号。如何: sed“s',BBBB',g”文件 其中B是反斜杠。。。这是4个反斜杠…使用-e选项 sed-e s/\'/\\'/g file2尝试以下操作: sed -e s

如何用反斜杠替换单引号('),然后使用sed替换单引号(\')

sed s/\'/\\\'/
不起作用,因为你永远无法写出文字

sed ":a;N;s/\'/\\'/g" <file1 >file2
sed:a;N;s/\'/\\'/g“文件2
无法使用,因为反斜杠将不再从引号中转义,它将被视为正则表达式引号。

如何: sed“s',BBBB',g”文件 其中B是反斜杠。。。这是4个反斜杠…

使用-e选项

sed-e s/\'/\\'/g file2

尝试以下操作:

sed -e s/\'/\\\\\'/g input > output
为了证明这是有效的:

echo "Hello 'World'" | sed -e s/\'/\\\\\'/g
输出应为:

Hello \'World\'

只需引用替换项即可

$ echo \' | sed s/\'/"\\\'"/
$ \'
e、 g

这似乎有效:

<<<"''''" sed 's/'\''/\\&/;s/\('"'"'\)\(..\)$/\\\1\2/;'s/\'\'$/\\\\\'\'/";s/'$/\\\'/"
\'\'\'\'

适用于Mac OS-您的里程可能会有所不同。。。
<<<"''''" sed 's/'\''/\\&/;s/\('"'"'\)\(..\)$/\\\1\2/;'s/\'\'$/\\\\\'\'/";s/'$/\\\'/"
\'\'\'\'