【问题标题】:Search & replace on all files in server搜索和替换服务器中的所有文件
【发布时间】:2020-05-12 15:43:33
【问题描述】:

我要搜索这一行:

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

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

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

【问题讨论】:

    标签: linux ssh command


    【解决方案1】:

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

    sed -i '/regex/d' file
    

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

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

    小心调试。 :)

    【讨论】:

      【解决方案2】:

      我使用了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 将进行递归搜索.

      如果有问题,请告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-15
        • 2012-05-20
        • 2012-08-19
        • 1970-01-01
        • 2022-01-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多