我有一堆不完整的文件:最后一行缺少 EOL 字符。
使用任何工具添加换行的最简单方法是什么(awk可能?)?
答案 0 :(得分:28)
在文件末尾添加换行符:
echo >>file
在当前目录中每个文件的末尾添加一行:
for x in *; do echo >>"$x"; done
如果您事先不知道每个文件是否以换行符结尾,请先测试最后一个字符。 tail -c 1
打印文件的最后一个字符。由于命令替换会截断任何最终换行符,如果文件为空或以换行符结尾,则$(tail -c 1 <file)
为空,如果文件以非换行符结尾,则为非空。
for x in *; do if [ -n "$(tail -c 1 <"$x")" ]; then echo >>"$x"; fi; done
答案 1 :(得分:5)
Vim很棒,因为如果你不以binary
模式打开文件,它会自动以检测到的行结束文件结束。
所以:
vim file -c 'wq'
应该可以正常工作,无论您的文件是否具有Unix,Windows或Mac行尾样式。
答案 2 :(得分:1)
echo >> filename
在大量使用之前尝试:)