【发布时间】:2020-05-12 15:43:33
【问题描述】:
我要搜索这一行:
<script type="text/javascript" src="//example.com/file.php?zoneid=112" async data-cfasync="false"></script>
并将其删除/替换为空白。
我可以在 linux 上运行什么命令行来搜索和替换服务器上所有文件上的这个词?
【问题讨论】:
我要搜索这一行:
<script type="text/javascript" src="//example.com/file.php?zoneid=112" async data-cfasync="false"></script>
并将其删除/替换为空白。
我可以在 linux 上运行什么命令行来搜索和替换服务器上所有文件上的这个词?
【问题讨论】:
您可以将sed 与regex 一起使用,并在file 上使用命令d:
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 将进行递归搜索.
如果有问题,请告诉我。
【讨论】: