我有一些文件要删除最后一个换行符(如果它是文件中的最后一个字符)。 od -c
向我显示,我运行的命令确实以尾随新行写入文件:
0013600 n t > \n
我用sed尝试了一些技巧,但我能想到的最好的方法不是:
sed -e '$s/\(.*\)\n$/\1/' abc
任何想法如何做到这一点?
最佳答案
perl -pe 'chomp if eof' filename >filename2
或者,在适当位置编辑文件:
perl -pi -e 'chomp if eof' filename
[编者注:
-pi -e
最初是-pie
,但是,正如一些评论者所述并由@hvd解释,后者不起作用。]在我看到的awk网站上,这被描述为“perl亵渎”。
但是,在测试中,它奏效了。