当我使用sed用X替换所有空格时,命令有效,命令为:
sed 's/ /X/g' filelist.tmp
但是,当我尝试使用\ space替换所有出现的空格时,代码为:
sed 's/ /\ /g' filelist.tmp
它不起作用。我究竟做错了什么?请注意,我是shell脚本的新手。
答案 0 :(得分:7)
添加另一个\
,即您需要\
字面值:
sed 's/ /\\ /g'
在空格之前只有一个\
,\
正在逃离以下空格;因为空间不是需要转义的替代特殊字符,所以它按原样使用。
示例:强>
% sed 's/ /\\ /g' <<<'foo bar spam'
foo\ \ bar\ \ spam
答案 1 :(得分:-1)
您应该使用-r参数并将语法修复为
sed -r "s/\s/\\\s/g" filelist.tmp
你也有错误,以便逃避“\”。