【问题标题】:Regex question to find a trailing space in a whole folder在整个文件夹中查找尾随空格的正则表达式问题
【发布时间】:2009-05-06 02:43:12
【问题描述】:

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

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

【问题讨论】:

  • 假设您希望在命令行上执行此操作,使用什么操作系统?
  • 我在 OS X (Leopard) 上使用 bash。谢谢!

标签: php regex directory


【解决方案1】:

类似:

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

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

一如既往,一定要先备份。

【讨论】:

    【解决方案2】:

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

    顺便说一句,知道关闭 ?> 在 PHP 文件末尾是不必要的很有用,最好在此处省略它。我数不清有多少次我看到一个以“?>”结尾的 PHP 文件,人们疯狂地试图找到一个导致输出/标题问题的额外空间。

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-24
        • 1970-01-01
        • 2019-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多