gpt4 book ai didi

linux - 如何使用 find 和 sed 删除文件中的特定字符串

转载 作者:行者123 更新时间:2023-12-04 19:33:44 24 4
gpt4 key购买 nike

我所有的 index.php 都注入(inject)了

<script type='text/javascript' src=’https://www.example.com/home?v=2.2.0′></script> 

在它的第一行。

所以我只想删除该特定行 "<script type=’text/javascript’ src=’https://www.example.com/home/public′></script>"通过运行 CentOS 的 Cpanel 中的终端

我做了一些研究,我想出了这个:
find . -name “index.php” -exec sed -i “s#<script type=’text/javascript’ src=’https://www.example.com/home?v=2.2.0′></script>##g"; {} +

终端显示错误:
查找:缺少“-exec”的参数
bash:{}+:找不到命令

最佳答案

你刚刚结束你的线路太快了! ;应该在行尾。

find . -name index.php -exec sed -i "s#<script type='text/javascript' src='https://www.example.com/home'></script>##g" {} +;

(请注意,您的示例中有一些引号/反引号或打印引号......这可能会令人困惑)

但是我在您的问题中看到了 2 个信息(第一行 + 一个模式)。

最简单的方法(不是唯一的方法)不是 删除所有index.php的第一行文件?

如果是这样,只需使用:
find . -name index.php -exec sed -i '1d' {} +;

您也可以使用 for而不是 exec :
for i in `find . -name index.php`; do sed -i '1d' $i; done;

在 macOS/freeBSD 风格下,只需添加 ''sed :
for i in `find . -name index.php`; do sed -i '' '1d' $i; done;

如果要删除整个模式,则需要保护特殊字符等, 例如,您需要注意不要删除文件中任何其他位置的相同但有用的模式 .所以要小心。

关于linux - 如何使用 find 和 sed 删除文件中的特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61272404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com