免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: yinyuemi

[文本处理] awk1line 实现 sed1line [复制链接]

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
发表于 2012-07-10 07:22 |显示全部楼层
感谢分享  ^_^

论坛徽章:
1
巨蟹座
日期:2014-06-10 23:03:47
发表于 2014-07-31 10:49 |显示全部楼层
本帖最后由 zhleiling 于 2014-07-31 11:32 编辑

第一条里,中间的应该是 awk '1;{print ""}'吧
  1. [root@APP zl]# echo "aa" |sed G
  2. aa

  3. [root@APP zl]# echo "aa" | awk '{print ""}1'

  4. aa
复制代码
回复 1# yinyuemi


   

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2014-07-31 15:12 |显示全部楼层
回复 22# zhleiling


    谢谢指正,已修改~

论坛徽章:
3
酉鸡
日期:2014-04-23 17:17:56丑牛
日期:2014-05-08 11:41:302015亚冠之德黑兰石油
日期:2015-08-03 11:14:27
发表于 2014-08-01 15:59 |显示全部楼层
好贴,多谢楼主分享~

论坛徽章:
9
2015亚冠之大阪钢巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26处女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37双鱼座
日期:2014-07-25 10:09:54程序设计版块每日发帖之星
日期:2015-08-24 06:20:00
发表于 2014-08-11 16:13 |显示全部楼层
回复 1# yinyuemi


    -> seq 15|sed -n -e '/2/{=;x;1!p;g;$!N;p;D;}' -e h
2
1
2
3
12
11
12
13

-> seq 15|awk '{a=b;b=c;c=$0}b~/2/{printf "%s\n%s\n%s\n%s\n",NR,a,b,c}'
3
1
2
3
13
11
12
13

-> seq 15|awk '{a=b;b=$0}/2/{getline c;print NR"\n"a"\n"b"\n"c}'
3
1
2
3
13
11
12
13

SS 大神, 这个实现的好像不一样,sed 打印的是regexp所在行的行号
awk是regexp下行的行号

论坛徽章:
9
2015亚冠之大阪钢巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26处女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37双鱼座
日期:2014-07-25 10:09:54程序设计版块每日发帖之星
日期:2015-08-24 06:20:00
发表于 2014-08-11 16:19 |显示全部楼层
回复 1# yinyuemi


    -> seq 15|sed -n -e '/2/{=;x;1!p;g;$!N;p;D;}' -e h
2
1
2
3
12
11
12
13

-> seq 15|awk '{a=b;b=c;c=$0}b~/2/{printf "%s\n%s\n%s\n%s\n",NR,a,b,c}'
3
1
2
3
13
11
12
13

-> seq 15|awk '{a=b;b=$0}/2/{getline c;print NR"\n"a"\n"b"\n"c}'
3
1
2
3
13
11
12
13

SS 大神, 这个实现的好像不一样,sed 打印的是regexp所在行的行号
awk是regexp下行的行号

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2014-08-12 14:52 |显示全部楼层
回复 25# Buring__


    多谢指正~

论坛徽章:
8
天秤座
日期:2013-09-02 09:10:44CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-11-20 16:38:31巨蟹座
日期:2013-12-18 13:03:34天秤座
日期:2013-12-31 13:28:40卯兔
日期:2014-01-22 17:09:40技术图书徽章
日期:2014-02-27 20:31:47巳蛇
日期:2014-09-22 10:25:32
发表于 2014-08-12 17:47 |显示全部楼层
   先收藏,有一定基础了再研究
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP