当我使用sed将所有空格替换为X时,该命令起作用,该命令为:

sed 's/ /X/g' filelist.tmp

但是,当我尝试用空格替换所有出现的空格时,代码是:
sed 's/ /\ /g' filelist.tmp

它不起作用。我做错什么了?请注意,我是shell脚本的新手。

最佳答案

添加另一个\即,您需要使\文本:

sed 's/ /\\ /g'

只有一个\在空格之前,\正在转义后面的空格;由于空格不是需要转义的替换字符,因此它被视为原样。
例子:
% sed 's/ /\\ /g' <<<'foo  bar  spam'
foo\ \ bar\ \ spam

09-11 18:57
查看更多