在多个文件中添加缺少的换行符

发布于 2024-11-05 19:55:13 字数 81 浏览 0 评论 0 原文

我有一堆不完整的文件:最后一行缺少 EOL 字符。

使用任何工具(也许是 awk?)添加换行符的最简单方法是什么?

I have a bunch of files that are incomplete: the last line is missing an EOL character.

What's the easiest way to add the newline, using any tool (awk maybe?)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

旧人哭 2024-11-12 19:55:13

在文件末尾添加换行符:

echo >>file

在当前目录中的每个文件末尾添加一行:

for x in *; do echo >>"$x"; done

如果您事先不知道每个文件是否以换行符结尾,请先测试最后一个字符。 tail -c 1 打印文件的最后一个字符。由于命令替换会截断任何最后的换行符,因此如果文件为空或以换行符结尾,则 $(tail -c 1 为空;如果文件以非 - 结尾,则 $(tail -c 1 为空。换行符。

for x in *; do if [ -n "$(tail -c 1 <"$x")" ]; then echo >>"$x"; fi; done

To add a newline at the end of a file:

echo >>file

To add a line at the end of every file in the current directory:

for x in *; do echo >>"$x"; done

If you don't know in advance whether each file ends in a newline, test the last character first. tail -c 1 prints the last character of a file. Since command substitution truncates any final newline, $(tail -c 1 <file) is empty if the file is empty or ends in a newline, and non-empty if the file ends in a non-newline character.

for x in *; do if [ -n "$(tail -c 1 <"$x")" ]; then echo >>"$x"; fi; done
汐鸠 2024-11-12 19:55:13

Vim 非常适合这一点,因为如果您不以二进制模式打开文件,它会自动以检测到的行结尾结束文件。

所以:

vim file -c 'wq'

无论您的文件是否具有 Unix、Windows 还是 Mac 行尾样式,都应该有效。

Vim is great for that because if you do not open a file in binary mode, it will automatically end the file with the detected line ending.

So:

vim file -c 'wq'

should work, regardless of whether your files have Unix, Windows or Mac end of line style.

ˉ厌 2024-11-12 19:55:13
echo >> filename

在大量使用之前尝试一下:)

echo >> filename

Try it before mass use :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文