免费注册 查看新帖 |

Chinaunix

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

字符串处理问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-13 11:00 |只看该作者 |倒序浏览
本帖最后由 very12345 于 2010-10-13 13:04 编辑

假设有:
AAAAAAAA|kkkk
|BBBB
CCCCCC|wwwww
|DDD
FFFFF
GGGGGG
|EEEEEEEEE

如果句首是|,就并入上一行,希望得到如下结果
AAAAAAAA|kkkk|BBBB
CCCCCC|wwwww|DDD
FFFFF
GGGGGG|EEEEEEEEE

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
2 [报告]
发表于 2010-10-13 11:09 |只看该作者
本帖最后由 ly5066113 于 2010-10-13 11:16 编辑

sed -e ':a' -e '$!N;s/\n|/|/;ta' -e 'P;D' urfile

论坛徽章:
0
3 [报告]
发表于 2010-10-13 11:11 |只看该作者
回复 2# ly5066113


    太深奥了,看不懂

论坛徽章:
0
4 [报告]
发表于 2010-10-13 11:13 |只看该作者
sed -e :a -e 'N;s/\n|/|/;ta;D' file

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
5 [报告]
发表于 2010-10-13 11:16 |只看该作者
回复 3# very12345


awk 容易懂

awk 'NR>1&&!/^|/{print ""}{printf $0}' urfile

论坛徽章:
0
6 [报告]
发表于 2010-10-13 11:38 |只看该作者
回复 3# very12345

模仿下hat的。。。。
    用sedsed看一下就知道鸟。。。。。。
http://sedsed.sourceforge.net/
  1. [oracle@s12071 ~]$ sedsed -d ':a;$!N;s/\n|/|/;ta;P;D' file
  2. PATT:AAAAAAAA$
  3. HOLD:$
  4. COMM::a
  5. COMM:$ !N
  6. PATT:AAAAAAAA\n|BBBB$
  7. HOLD:$
  8. COMM:s/\n|/|/
  9. PATT:AAAAAAAA|BBBB$
  10. HOLD:$
  11. COMM:t a
  12. COMM:$ !N
  13. PATT:AAAAAAAA|BBBB\nCCCCCC$
  14. HOLD:$
  15. COMM:s/\n|/|/
  16. PATT:AAAAAAAA|BBBB\nCCCCCC$
  17. HOLD:$
  18. COMM:t a
  19. COMM:P
  20. AAAAAAAA|BBBB
  21. PATT:AAAAAAAA|BBBB\nCCCCCC$
  22. HOLD:$
  23. COMM:D
  24. PATT:CCCCCC$
  25. HOLD:$
  26. COMM::a
  27. COMM:$ !N
  28. PATT:CCCCCC\n|DDD$
  29. HOLD:$
  30. COMM:s/\n|/|/
  31. PATT:CCCCCC|DDD$
  32. HOLD:$
  33. COMM:t a
  34. COMM:$ !N
  35. PATT:CCCCCC|DDD$
  36. HOLD:$
  37. COMM:s/\n|/|/
  38. PATT:CCCCCC|DDD$
  39. HOLD:$
  40. COMM:t a
  41. COMM:P
  42. CCCCCC|DDD
  43. PATT:CCCCCC|DDD$
  44. HOLD:$
  45. COMM:D
  46. [oracle@s12071 ~]$ cat file
  47. AAAAAAAA
  48. |BBBB
  49. CCCCCC
  50. |DDD
  51. [oracle@s12071 ~]$
复制代码

论坛徽章:
0
7 [报告]
发表于 2010-10-13 12:23 |只看该作者
awk 'NR%2!=0{printf("%s",$0);next}{print $0}'  yrfile


next命令实现实现
  1. [root@test7 test]# awk 'NR%2!=0{printf("%s",$0);next}{print $0}' 1.txt
  2. AAAAAAAA|BBBB
  3. CCCCCC|DDD
复制代码

论坛徽章:
0
8 [报告]
发表于 2010-10-13 12:26 |只看该作者
谢谢大家~

论坛徽章:
0
9 [报告]
发表于 2010-10-13 12:35 |只看该作者
回复 6# lkk2003rty


    学习了:)

论坛徽章:
0
10 [报告]
发表于 2010-10-13 12:44 |只看该作者
[wangsl@centos5 shell]$ awk '{print $0}' test.txt
AAAAAAAA
|BBBB
CCCCCC
|DDD

[wangsl@centos5 shell]$ awk '{ORS=($0 ~ /^\|/)?"\n":""; print $0}' test.txt
AAAAAAAA|BBBB
CCCCCC|DDD
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP