Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 查找字符串并用“替换”/&引用;在RHEL 7.4中的目录中递归_Linux_String_Bash_Sed_Redhat - Fatal编程技术网

Linux 查找字符串并用“替换”/&引用;在RHEL 7.4中的目录中递归

Linux 查找字符串并用“替换”/&引用;在RHEL 7.4中的目录中递归,linux,string,bash,sed,redhat,Linux,String,Bash,Sed,Redhat,我必须在RHEL 7.4的目录中递归地查找并替换所有文件/eOffice/eofficev6到/eOffice/SAPS/eofficev6中出现的所有字符串 问题是我使用的是sed-I,但我的字符串也包含/斜杠 如何替换所有具有/的字符串?您可以这样做 sed -i 's/\(\/eOffice\)\(\/eofficev6\)/\1\/SAPS\2/' input_file_name 将“/eOffice”和“eofficev6”部分分组,并将“SAPS”插入其中 例如,如果输入为: /e

我必须在RHEL 7.4的目录中递归地查找并替换所有文件
/eOffice/eofficev6
/eOffice/SAPS/eofficev6
中出现的所有字符串

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

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

您可以这样做

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

你有两种方法来实现你想要的

一:转义斜杠(例如
sed-i“s/\/eOffice\/eofficev6/\/eOffice\/SAPS\/eofficev6/”文件


第二:更改分隔符(例如,
sed-i“s |/eOffice/eofficev6 |/eOffice/SAPS/eofficev6 |”文件
)。

change
sed
子命令分隔符
sed~/eOffice/eofficev6~/eOffice/SAPS/eofficev6~G
这可能会有所帮助:请阅读-总结是,这不是一种理想的方式来称呼志愿者,而且可能对获得答案起到反作用。请不要将此添加到您的问题中。可能与、、等重复。我很乐意找出我的错误并学习。有人评论为什么这个答案不好吗?我认为这个答案不只是夸大其词!我不知道关于组的事[:@OP:你应该把这个答案标记为正确的答案!