如何使用sed用\(空格)替换空间?

时间:2017-01-15 14:45:47

标签: bash shell sed

当我使用sed用X替换所有空格时,命令有效,命令为:

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

但是,当我尝试使用\ space替换所有出现的空格时,代码为:

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

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

2 个答案:

答案 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

你也有错误,以便逃避“\”。