- 此问题在此处已有答案**:
How to detect file ends in newline?(10个答案)
5年前关闭。
- 注意:此问题的措辞不同,使用"with/out newline"代替"with/out empty line"*
我有两个文件,一个有空行,一个没有:
- 文件:文本不带空行**
$root@kali:/home#cat text_without_empty_line
This is a Testfile
This file does not contain an empty line at the end
$root@kali:/home#
- 文件:文本行为空**
$root@kali:/home#cat text_with_empty_line
This is a Testfile
This file does contain an empty line at the end
$root@kali:/home#
有没有一个命令或函数可以检查文件末尾是否有空行?我已经找到了这个解决方案,但它对我不起作用。(编辑:忽略:使用preg_match和PHP的解决方案也可以。)
4条答案
按热度按时间dgtucam11#
只需键入:
如果有换行符,则以
$
符号结束;如果没有换行符,则以%
符号结束。dgsult0t2#
Olivier Pirson's answer比我最初在这里发布的更整洁(它也能正确处理空文件),我编辑了我的解决方案以匹配他的。
在bash中:
作为您可以调用的shell脚本(将其粘贴到文件
chmod +x <filename>
中以使其可执行):idfiyjo83#
我找到了解here。
重要提示:请确保您具有执行和读取脚本的权限!
chmod 555 script
用途:
b5buobof4#
\Z
元字符表示字符串的绝对结尾。这里你看到的是字符串末尾的一个新行。
file_get_contents
不会在末尾添加任何内容,但是它会将整个文件加载到内存中;如果您文件不是太大,也没关系,否则您必须为您的问题带来一个新的解决方案。