我正在尝试解决我的一些WordPress安装程序中的黑客问题。
这个人在我的服务器上的多个文件头部插入了9行代码... 我正在尝试使用grep和sed来解决这个问题。
我正在尝试:
grep -r -l "//360cdn.win/c.css" | xargs -0 sed -e '1,9d' < {}
但是如果我从xargs中删除-0
,虽然找到的文件结果干净,但它们没有用sed
的结果覆盖原始文件,请问有人可以帮忙吗?
非常感谢!
在使用grep
命令时,您应该使用--null
选项,以在grep
输出中的每个文件名后输出一个NUL字节或\0
。此外,在每个文件中进行内联编辑时,请使用-i.bak
选项来使用sed
命令:
grep -lR --null '//360cdn.win/c\.css' . | xargs -0 sed -i.bak '1,9d'
直接迭代文件有什么问题¹?
你可能想要添加-i
标志到sed,以便文件可以被就地编辑。
grep -r -l "//360cdn.win/c.css" | while read f
do
sed -e '1,9d' -i "${f}"
done
嗯,如果您的文件包含换行符等内容,则可能会遇到问题。 但是...如果您的网站包含带有换行符的文件,则您可能已经有其他问题了...