【发布时间】:2019-10-22 00:16:36
【问题描述】:
我正在尝试从网站上的 PHP 文件末尾查找并删除所有关闭的 PHP 标记 ?>。
我用过:
find . -type f -exec sh -c 'tail -n 1 "$1" | grep -q "?>" && printf "%s\n" "$1"' -- {} \;
这给了我一个以 PHP 标记结尾的所有文件的列表,这是预期的,但该列表也超过 500 个文件,因此手动浏览需要很长时间。
如果可能的话,我正在寻找一种相对简单的方法来做到这一点。
我试过像这样使用sed:
find . -type f -exec sh -c 'tail -n 1 "$1" | grep -q "?>" && printf "%s\n" "$1"' -- {} \; | sed -i '$ d' ./*
但这有两个问题;它不会进入目录,它会从 all 文件中删除最后一行,而不仅仅是那些有 PHP 结束标记的文件。
我希望它能在最后一行找到所有带有?> 的文件(我可以让它工作),然后删除带有标签的最后一行。
我觉得我很接近,只是错过了一些东西。
【问题讨论】: