我有一些文件,如果最后一个换行符是文件中的最后一个字符,我想删除它。od -c
向我展示了我运行的命令确实会在文件的末尾添加一个新行:
0013600 n t > \n
我已经用sed尝试了一些技巧,但我能想到的最好的办法就是不这样做:
sed -e '$s/\(.*\)\n$/\1/' abc
你知道该怎么做吗?
发布于 2009-10-31 19:21:08
gawk
awk '{q=p;p=$0}NR>1{print q}END{ORS = ""; print p}' file
发布于 2016-11-13 09:55:16
一个快速的解决方案是使用gnu实用程序truncate
。
[ -z $(tail -c1 file) ] && truncate -s-1 file
如果文件有尾随的新行,则测试将为真。
删除非常快,真正到位,不需要新的文件,搜索也是从最后读取一个字节(tail -c1
)。
发布于 2016-06-15 06:24:09
单行文件的一种非常简单的方法,需要来自coreutils的GNU echo:
/bin/echo -n $(cat $file)
https://stackoverflow.com/questions/1654021
复制相似问题