gpt4 book ai didi

linux - 如何使用 bash 在 Linux 上删除多个文件中的多行

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:24:21 27 4
gpt4 key购买 nike

我正在尝试从我的 Linux 共享主机上的所有 Javascript 文件中删除 2 行。我想在不编写脚本的情况下执行此操作,因为我知道使用 sed 应该可以做到这一点。我目前的尝试是这样的:

find . -name "*.js" | xargs sed -i ";var 
O0l='=sTKpUG"

第二行实际上比这更长,但它是恶意代码,所以我没有在此处包含它。如您所料,我的服务器已被黑客入侵,因此我需要清理所有这些 JavaScript 文件。

我忘了说我现在得到的输出是:

sed: -e expression #1, char 4: expected newer version of sed

连续的2行如下:

;变量

O0l='=sTKpUG

除了第二行比较长,但是第二行的其余部分应该不会影响命令。

最佳答案

他的意思是删除相邻的两条线。

你可以这样做,记得备份你的文件。

find . -name "*.js" | xargs sed  -i -e "/^;var/N;/^;var\nO0l='=sTKpUG/d"

由于 sed 逐行处理输入文件,它不会将换行符 '\n' 存储在其缓冲区中,因此我们需要使用标志/N 来告诉它附加下一行,并带有换行符。

/^;var/N;

然后我们进行模式搜索和删除。

/^;var\nO0l='=sTKpUG/d

关于linux - 如何使用 bash 在 Linux 上删除多个文件中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15561381/

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