首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果换行符是文件中的最后一个字符,我如何删除它?

如果换行符是文件中的最后一个字符,我如何删除它?
EN

Stack Overflow用户
提问于 2009-10-31 18:42:19
回答 15查看 110.4K关注 0票数 173

我有一些文件,如果最后一个换行符是文件中的最后一个字符,我想删除它。od -c向我展示了我运行的命令确实会在文件的末尾添加一个新行:

代码语言:javascript
复制
0013600   n   t  >  \n

我已经用sed尝试了一些技巧,但我能想到的最好的办法就是不这样做:

代码语言:javascript
复制
sed -e '$s/\(.*\)\n$/\1/' abc

你知道该怎么做吗?

EN

回答 15

Stack Overflow用户

发布于 2009-10-31 19:21:08

gawk

代码语言:javascript
复制
   awk '{q=p;p=$0}NR>1{print q}END{ORS = ""; print p}' file
票数 11
EN

Stack Overflow用户

发布于 2016-11-13 09:55:16

一个快速的解决方案是使用gnu实用程序truncate

代码语言:javascript
复制
[ -z $(tail -c1 file) ] && truncate -s-1 file

如果文件有尾随的新行,则测试将为真。

删除非常快,真正到位,不需要新的文件,搜索也是从最后读取一个字节(tail -c1)。

票数 9
EN

Stack Overflow用户

发布于 2016-06-15 06:24:09

单行文件的一种非常简单的方法,需要来自coreutils的GNU echo:

代码语言:javascript
复制
/bin/echo -n $(cat $file)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1654021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档