使用版本控制系统,当差异说出来时我感到很烦恼No newline at end of file
。
所以我想知道:如何在文件末尾添加换行符以消除这些消息?
为了递归清理项目,我使用以下单件纸:
git ls-files -z | while IFS= read -rd '' f; do tail -c1 < "$f" | read -r _ || echo >> "$f"; done
解释:
git ls-files -z
列出存储库中的文件。它采用可选模式作为附加参数,如果您想将操作限制在某些文件/目录中,则在某些情况下可能会很有用。或者,您可以使用find -print0 ...
或类似的程序来列出受影响的文件-只需确保它发出-NUL
分隔的条目即可。
while IFS= read -rd '' f; do ... done
遍历条目,安全处理包含空格和/或换行符的文件名。
tail -c1 < "$f"
从文件中读取最后一个字符。
read -r _
如果缺少尾随换行符,则退出状态为非零退出。
|| echo >> "$f"
如果前一个命令的退出状态为非零,则在文件后添加换行符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句