我尝试过使用 sed 来读取\
.无法读取\
并将其替换为\\\\
.我想\
用 4替换 single \\\\
。
答案1
在单引号替换中,每个反斜杠使用 2 个反斜杠。
echo '\' | sed 's/\\/\\\\\\\\/'
在双引号替换中,每个反斜杠文字需要 4 个反斜杠,因为 shell 将每个反斜杠解释\\
为反斜杠。
echo '\' | sed "s/\\\\/\\\\\\\\\\\\\\\\/"
答案2
sed 's/[\]/&&&&/'
在 中[...]
,它是一个与括号内的集合中的单个字符匹配的表达式,每个字符\
都是文字,因此不需要转义它(如果在表达式周围使用单引号;使用双引号,您仍然需要转义反斜杠)。
替换字符串中的四个字符串中的每一个都&
将被正则表达式匹配的内容替换。
或者,如果[\]
感觉奇怪,
sed 's/\\/&&&&/'