免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: yj411
打印 上一主题 下一主题

如何用去掉txt文件最后一行末尾的换行符 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-02-09 17:26 |只看该作者
或者换一种说法,如何去掉某行结尾的换行符:
111.txt::


cat -A 111.txt
aaaa$
bbb$
如去掉第2行结尾的换行符

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
12 [报告]
发表于 2012-02-09 19:51 |只看该作者
回复 8# MMMIX
out了,还不知道有dd和xxd这类命令
shell语法记不住,遇到复杂文本类操作都转向python解决,shell做粘合剂用


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
13 [报告]
发表于 2012-02-09 22:46 |只看该作者
用 C 干吧,这问题简单。

打开文件的时候,在stat.h 中有一个结构,中间有一个 st.size 的变量,是表示文件大小的,可以打开文件,移动文件指针到最后一个字符,也就是这个 size 的位置,然后判断这个字符是否是 '\n' , 如果是,用 '\0' 替换救OK;了。

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
14 [报告]
发表于 2012-02-09 23:13 |只看该作者
回复 11# yj411
如果是删除某一行(非最后一行)的换行符,其实就是合并当前行和下一行,编辑器常见功能,vi就可以:
vi +34 '+exe "norm gJ" | wq' test.cpp
解释:vi自动定位test.cpp于34行,gJ合并当前行和下一行,且不删除任何多余空白字符,wq保存退出

但删除最后一行的换行符,很少见,一般文本结尾肯定有一个换行,LZ要按大家的思路,写一把代码了
或者LZ遇到的问题引申出了这种需求?


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP