正则表达式问题,以找到整个文件夹中的尾随空格

时间:2009-05-06 02:43:12

标签: php regex directory

我有一个从wordpress安装中提取的文件夹,> 1000个文件。一些PHP代码由于最后一行的尾随空格而抛出错误(我在一些最后一行的页面上清理了一个iframe注入,并确实找到/替换了一个空格,但是不知道这会甩掉所有我的代码)。

切割这些空间的最有效方法是什么?我以前从未运行过正则表达式,但知道我会使用它。救命啊!

3 个答案:

答案 0 :(得分:6)

类似的东西:

find -type f | xargs sed -i'$ s / [[:space:]] + $ //'

这应删除cwd中任何位置的任何文件的最后一行的尾随空格。第一个$是“最后一行”的sed地址,第二个是行尾的正则表达式。

一如既往,请务必先备份。

答案 1 :(得分:2)

如果你确定它是文件最后一行的尾随空格,那么你需要一个bash脚本(我假设你正在使用Linux)来为每个文件(使用“find”)。获取一个列表),尾部-1文件,然后grep该行为空格或制表符。

切线,了解收盘价是否有用?>在PHP文件的末尾是不必要的,最好在那里省略它。我无法计算我看到一个以“?>”结尾的PHP文件的次数,人们会疯狂地试图找到导致输出/标头问题的一个额外空间。

答案 2 :(得分:0)

在这种情况下,我要做的是编写一个脚本或程序,当给定一个目录时,它递归地查找以.php结尾的文件或其他任何东西然后简单地编写一个函数 1)寻找最后一个字节并存储该位置 2)如果该字节是空格,则寻找一个字节并再次检查 3)如果不是空格,则返回偏移量

然后使用它可以将每个文件写为新副本或旧文件

P.S上述解决方案之一也可行:P