我要搜索此行:
<script type="text/javascript" src="//example.com/file.php?zoneid=112" async data-cfasync="false"></script>
然后将其删除/将其替换为空白。
我可以在linux上运行什么命令行来搜索和替换服务器上所有文件上的该术语?
您可以将sed
与regex
一起使用,并在d
上命令file
:
sed -i '/regex/d' file
下一个构造可以帮助您将带有find
的文件名传递给sed
:
find . | xargs sed -i '/regex/d'
小心调试。 :)
我使用了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将进行递归搜索。
让我知道是否有问题。