免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1168 | 回复: 2
打印 上一主题 下一主题

[文本处理] 大神们,求一文件处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-09-03 05:08 |只看该作者 |倒序浏览
本帖最后由 Nathon99 于 2015-09-03 06:37 编辑

现在有一文件,在unix下生成的,必须要转换成DOS格式的所以我用awk处理了下。
awk  'sub("$","\r")' a.txt>t1.txt
这样生成的文件t1.txt中的每一行都是以^M结尾(如果在unix环境下用vi -v t1.txt查看),如:
abcd^M
12345678910...^m
......^m
.....^M
defg^M
现在的需求是,a.txt文件首行与末行保持不变,只是对除首行与末行中间的部分行进行DOS文件处理(也即转换每行以^M结尾).

大神们,如何处理。多谢了!


也可以理解为  如果得到了t1.txt文件,如何将首行与尾行的结尾^M换行符给去掉呢?

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2015-09-03 08:16 |只看该作者
本帖最后由 jason680 于 2015-09-03 08:17 编辑

回复 1# Nathon99

>>a.txt文件首行末行保持不变,只是对除首行与末行中间的部分行进行DOS文件处理(也即转换每行以^M结尾).

$ cat -A a.txt
abcd$
12345678910...$
......$
.....$
defg$

$ awk '{if(NR==1)print;if(NR>2)print line"\r";line=$0}END{print line}' a.txt > t1.txt

$ cat -A t1.txt
abcd$
12345678910...^M$
......^M$
.....^M$
defg$

   

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-10-11 06:20:0015-16赛季CBA联赛之山东
日期:2016-05-28 18:18:5615-16赛季CBA联赛之新疆
日期:2017-04-12 22:55:4715-16赛季CBA联赛之青岛
日期:2017-06-26 18:30:0315-16赛季CBA联赛之四川
日期:2017-09-04 12:27:0315-16赛季CBA联赛之福建
日期:2018-02-09 14:28:3315-16赛季CBA联赛之同曦
日期:2018-04-17 12:43:3415-16赛季CBA联赛之浙江
日期:2018-07-14 13:27:4015-16赛季CBA联赛之吉林
日期:2018-09-13 15:48:2915-16赛季CBA联赛之新疆
日期:2016-05-07 05:05:3215-16赛季CBA联赛之八一
日期:2016-03-14 12:32:06程序设计版块每日发帖之星
日期:2015-12-12 06:20:00
3 [报告]
发表于 2015-09-03 15:48 |只看该作者
2楼的方法可以解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP