Mir*_*rek 3 grep files newlines
如何打印文件的所有完整行?我所说的“完整”仅指以换行符结尾的那些。grep
将 EOF 视为行分隔符,因此grep '^.*$' file
即使文件末尾没有换行符,也会打印最后一行。
整个问题来自解析日志文件:我们需要以某种方式确保最后一个条目被完全记录 - 即它以换行符结尾。
一个简单的方法是使用perl
:
perl -ne '/\n/ && print' file
Run Code Online (Sandbox Code Playgroud)
如果您只想检查文件的最后一个字符是否为换行符,您可以执行以下操作:
tail -c1 file | grep -q '^$' && echo yes || echo no
Run Code Online (Sandbox Code Playgroud)
但该-c
选项不是 POSIX,因此不可移植。