搜索并替换服务器中的所有文件

问题描述 投票:0回答:2

我要搜索此行:

<script type="text/javascript" src="//example.com/file.php?zoneid=112" async data-cfasync="false"></script>

然后将其删除/将其替换为空白。

我可以在linux上运行什么命令行来搜索和替换服务器上所有文件上的该术语?

linux ssh command
2个回答
0
投票

您可以将sedregex一起使用,并在d上命令file

sed -i '/regex/d' file

下一个构造可以帮助您将带有find的文件名传递给sed

find . | xargs sed -i '/regex/d'

小心调试。 :)


0
投票

我使用了grepsed的组合

string_to_replace='<script type="text/javascript" src="//example.com/file.php?zoneid=112" async data-cfasync="false"></script>'

首先只需运行grep语句,以确保您匹配正确的字符串和文件。如果一切看起来不错,请运行以下命令;

grep -Inr "${string_to_replace}" | while read line; do filename=`echo $line | cut -d ":" -f 1`; line_no=`echo $line | cut -d ":" -f 2`; sed "${line_no}d" -i $filename; done

grep中,-I将忽略二进制文件,-n将打印行号,而-r将进行递归搜索。

让我知道是否有问题。

© www.soinside.com 2019 - 2024. All rights reserved.