【发布时间】:2023-03-19 03:53:01
【问题描述】:
我知道这些 PHP 文件是存在的。我可以在 VIM 中打开它们并查看有问题的字符。
我在 stackoverflow 上找到了几个链接,这些链接建议了对此的补救措施,但它们都不能正常工作。我知道有几个文件不包含 ^M 字符(CRLF 行结尾),但是我不断收到误报。
find . -type f -name "*.php" -exec fgrep -l $'\r' "{}" \;
返回误报。
find . -not -type d -name "*.php" -exec file "{}" ";" | grep CRLF
什么都不返回。
等等……等等……
编辑:是的,我在有问题的目录中执行这些行。
【问题讨论】:
-
您的目标是将
\r\n转换为\n吗?如果是这样,简单地做dos2unix *.php会不会更容易? -
两者都适合我。我建议一些调试步骤:获取第一个给出误报的文件,然后尝试
fgrep $'\r' /path/to/file.php | cat -v | more,看看它认为它发现了什么。对于第二个,尝试不使用grep并查看带有 CRLF 的文件输出的文件。 -
您是否安装了
dos2unix?这可能是最简单的方法。
标签: php bash replace line-endings newline