我想使用 sed 将 \ 替换为 \\\\

我想使用 sed 将 \ 替换为 \\\\

我尝试过使用 sed 来读取\.无法读取\并将其替换为\\\\.我想\用 4替换 single \\\\

答案1

在单引号替换中,每个反斜杠使用 2 个反斜杠。

echo '\' | sed 's/\\/\\\\\\\\/'

在双引号替换中,每个反斜杠文字需要 4 个反斜杠,因为 shell 将每个反斜杠解释\\为反斜杠。

echo '\' | sed "s/\\\\/\\\\\\\\\\\\\\\\/"

答案2

sed 's/[\]/&&&&/'

在 中[...],它是一个与括号内的集合中的单个字符匹配的表达式,每个字符\都是文字,因此不需要转义它(如果在表达式周围使用单引号;使用双引号,您仍然需要转义反斜杠)。

替换字符串中的四个字符串中的每一个都&将被正则表达式匹配的内容替换。

或者,如果[\]感觉奇怪,

sed 's/\\/&&&&/'

相关内容