在RHEL 7.4的目录中以递归方式查找并替换带有“/”的字符串

时间:2018-05-12 11:19:33

标签: linux string bash sed redhat

我必须在RHEL 7.4的目录中以递归方式查找所有文件/eOffice/eofficev6中的所有字符串并将其替换为/eOffice/SAPS/eofficev6

问题是我使用sed -i但我的字符串也包含/斜杠。

如何替换/的所有字符串?

2 个答案:

答案 0 :(得分:0)

你可以做到

sed -i 's/\(\/eOffice\)\(\/eofficev6\)/\1\/SAPS\2/' input_file_name

"/eOffice""eofficev6"部分分组,并在其间插入"SAPS"

例如,如果输入为:

/eOffice/eofficev6

输出将是

/eOffice/SAPS/eofficev6

使用\ s转发正斜杠。

或者没有分组,

sed -i 's/\/eOffice\/eOfficev6/\/eOffice\/SAPS\/eOfficeb6/' input_file

答案 1 :(得分:0)

你有两种方法可以达到你想要的效果。

One:Escape slashes(E.G。sed -i "s/\/eOffice\/eofficev6/\/eOffice\/SAPS\/eofficev6/" file)。

二:更改分隔符(E.G. sed -i "s|/eOffice/eofficev6|/eOffice/SAPS/eofficev6|" file)。