免费注册 查看新帖 |

Chinaunix

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

[文本处理] Linux shell如何去掉文件内容中某条记录中存在的换行符 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-30 23:35 |只看该作者 |倒序浏览
file源文件内容:
111aaa||222bbb||333ccc||444||
22asa||fdfsasd||sdfsdfadf||dddd
ssss||
333fd||sasdfdsf||ffd
fsd||aasdfsdf||
4sdfdf||sdfsdfsf||fdfds||ggggssa
esdf||
5sas||asdff||fdsf||ddfdsfasdfsd||
......


Linux shell如何去掉文件内容中某条记录中存在的换行符
每行都有固定字段数(如file有4个字段)


处理后的file文件内容要求如下:
111aaa||222bbb||333ccc||444
22asa||fdfsasd||sdfsdfadf||ddddssss
333fd||sasdfdsf||ffdfsd||aasdfsdf
4sdfdf||sdfsdfsf||fdfds||ggggssaesdf
5sas||asdff||fdsf||ddfdsfasdfsd
......

论坛徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亚冠之首尔
日期:2015-06-23 15:37:0015-16赛季CBA联赛之天津
日期:2016-01-22 18:58:2915-16赛季CBA联赛之佛山
日期:2016-05-31 19:18:0815-16赛季CBA联赛之同曦
日期:2016-08-10 16:26:3315-16赛季CBA联赛之辽宁
日期:2018-01-10 11:47:40
2 [报告]
发表于 2014-10-01 00:17 |只看该作者
你这问题不是在另外一个贴心弄过了吗  怎么又发

论坛徽章:
0
3 [报告]
发表于 2014-10-01 09:58 |只看该作者
本帖最后由 zerostudy 于 2014-10-01 10:01 编辑
  1. sed  ':1;/[a-zA-Z0-9]$/{$!N;s/\n//;b 1;}' a
复制代码

  1. # cat a
  2. 111aaa||222bbb||333ccc||444||
  3. 22asa||fdfsasd||sdfsdfadf||dddd
  4. ssss||
  5. 333fd||sasdfdsf||ffd
  6. fsd||aasdfsdf||
  7. 4sdfdf||sdfsdfsf||fdfds||ggggssa
  8. esdf||
  9. 5sas||asdff||fdsf||ddfdsfasdfsd||
  10. 6sdfdas||as
  11. dff||f
  12. dsf||dddfd
  13. fdsfasdfsd||

  14. # sed  ':1;/[a-zA-Z0-9]$/{$!N;s/\n//;b 1;}' a
  15. 111aaa||222bbb||333ccc||444||
  16. 22asa||fdfsasd||sdfsdfadf||ddddssss||
  17. 333fd||sasdfdsf||ffdfsd||aasdfsdf||
  18. 4sdfdf||sdfsdfsf||fdfds||ggggssaesdf||
  19. 5sas||asdff||fdsf||ddfdsfasdfsd||
  20. 6sdfdas||asdff||fdsf||dddfdfdsfasdfsd||
复制代码

论坛徽章:
0
4 [报告]
发表于 2014-10-01 17:00 |只看该作者

含有中文的好像就行不了哦

例如:

111aaa||222bbb||333ccc||444||
22asa||fdfsasd||sdfsdfadf||dddd
ssss||
333fd||sasdfdsf||ffd你好,
世界fsd||aasdfsdf||
4sdfdf||sdfsdfsf||fdfds||ggggssa我们
esdf||
5sas||asdff||fdsf||ddfdsfasdfsd||
......


   

论坛徽章:
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
5 [报告]
发表于 2014-10-01 18:12 |只看该作者
回复 4# dniit

$ awk -F'[|][|]' '{sub(FS"$","");N+=NF;if(N>6){print"";N=NF};printf $0}END{print""}' FILE
111aaa||222bbb||333ccc||444
22asa||fdfsasd||sdfsdfadf||ddddssss
333fd||sasdfdsf||ffd你好,世界fsd||aasdfsdf
4sdfdf||sdfsdfsf||fdfds||ggggssa我们esdf
5sas||asdff||fdsf||ddfdsfasdfsd

   

论坛徽章:
0
6 [报告]
发表于 2014-10-01 18:51 |只看该作者
回复 4# dniit
换一下应可以了:
  1. sed  ':1;/[^|]$/{$!N;s/\n//;b 1;}' a
复制代码

论坛徽章:
0
7 [报告]
发表于 2014-10-01 21:43 |只看该作者
本帖最后由 funexploit 于 2014-10-01 21:43 编辑
  1. forfun@mygentoo /tmp $ cat x.txt
  2. 111aaa||222bbb||333ccc||444||
  3. 22asa||fdfsasd||sdfsdfadf||dddd
  4. ssss||
  5. 333fd||sasdfdsf||ffd
  6. fsd||aasdfsdf||
  7. 4sdfdf||sdfsdfsf||fdfds||ggggssa
  8. esdf||
  9. 5sas||asdff||fdsf||ddfdsfasdfsd||
  10. 111aaa||222bbb||333ccc||444||
  11. 22asa||fdfsasd||sdfsdfadf||dddd
  12. ssss||
  13. 333fd||sasdfdsf||ffd你好,
  14. 世界fsd||aasdfsdf||
  15. 4sdfdf||sdfsdfsf||fdfds||ggggssa我们
  16. esdf||
  17. 5sas||asdff||fdsf||ddfdsfasdfsd||
  18. forfun@mygentoo /tmp $ cat x.txt | tr -d '\n' | sed 's/||/||\n/g' | sed 'N;N;N;s/\n//g;s/||$//g'
  19. 111aaa||222bbb||333ccc||444
  20. 22asa||fdfsasd||sdfsdfadf||ddddssss
  21. 333fd||sasdfdsf||ffdfsd||aasdfsdf
  22. 4sdfdf||sdfsdfsf||fdfds||ggggssaesdf
  23. 5sas||asdff||fdsf||ddfdsfasdfsd
  24. 111aaa||222bbb||333ccc||444
  25. 22asa||fdfsasd||sdfsdfadf||ddddssss
  26. 333fd||sasdfdsf||ffd你好,世界fsd||aasdfsdf
  27. 4sdfdf||sdfsdfsf||fdfds||ggggssa我们esdf
  28. 5sas||asdff||fdsf||ddfdsfasdfsd
  29. forfun@mygentoo /tmp $
复制代码

论坛徽章:
3
丑牛
日期:2014-09-13 18:19:22摩羯座
日期:2014-10-10 17:43:02水瓶座
日期:2014-10-16 01:00:22
8 [报告]
发表于 2014-10-02 19:30 |只看该作者
学生党:飘过~
Administrator@白头发 ~
$ sed  ':bk;/[^|]$/{N;s/\n//;b bk;};{s/||$//}' yhsafe.txt
111aaa||222bbb||333ccc||444
22asa||fdfsasd||sdfsdfadf||ddddssss
333fd||sasdfdsf||ffd你好,世界fsd||aasdfsdf
4sdfdf||sdfsdfsf||fdfds||ggggssa我们esdf
5sas||asdff||fdsf||ddfdsfasdfsd
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP