通过 ssh 搜索目录内的文本字符串,然后替换它们

通过 ssh 搜索目录内的文本字符串,然后替换它们

有没有办法在具有许多子目录的目录结构中的所有文本文件中搜索文本字符串 egHello并将其替换为 eg ?我正在运行 Ubuntu 17.04 x64 服务器。Hi

答案1

您必须通过 ssh 进入远程机器并运行下面描述的命令。

以下命令将用“Hi”替换特定位置(根据您的选择)内的所有文件中出现的“Hello”。

find /path/to/main/parent/directory -type f -exec sed -i 's/hello/hi/gI' {} \;

笔记

以上内容不区分大小写,如果您想要区分大小写的替换,您可以尝试删除I,即。's/Hello/Hi/g'

/path/to/main/parent/directory:您必须指定包含字符串“Hello”的文件开始的父目录。

对于 URL

从评论中我知道您想用包含以下内容的其他 URL 替换它,://因此请使用以下方法替换包含 URL 的字符串。

find /path/to/main/parent/directory -type f -exec sed -i 's,/URL1/,/URL2/,gI' {} \;

答案2

grep -Rl只是使用而不是查找的另一种选择:

grep -Rl 'hello' /path/to/main/parent/directory | xargs -n1 sed -i 's|hello|hi|g'

相关内容