首页 > 解决方案 > 搜索和替换服务器中的所有文件

问题描述

我想搜索这一行:

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

并将其删除/替换为空白。

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

标签: linuxsshcommand

解决方案


我使用了grep和的组合sed

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将进行递归搜索。

让我知道是否有问题。


推荐阅读