首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell中用awk和next处理多行文本合并

shell中用awk和next处理多行文本合并

作者头像
the5fire
发布2019-02-28 17:15:17
2.8K0
发布2019-02-28 17:15:17
举报

刚才群里有人问了个shell的问题,顺着查了下,记录下来,方便日后查询。

问题是这样,如下一个文件ips.txt:

192.168.0.18
1121
1122
192.168.0.19
2122
3232
3356
192.168.0.20
1112

要求输出结果是:

192.168.0.18:1121
192.168.0.18:1122
192.168.0.19:2122
192.168.0.19:3232
192.168.0.19:3356
192.168.0.20:1112

直观来说,用py很好解决:

#coding:utf-8ip=Noneforlineinopen('ips.txt','r'):line=line.strip()ifline.startswith('192'):ip=lineelse:print'%s:%s'%(ip,line)

用shell怎么解决呢?关键字:shell 文本 多行合并,于是有了这个解决方案:

awk '/^192/{T=$0;next;}{print T":"$1;}' ips.txt

这是awk中next的用法,查了查next的用法和解释,明白了。 其实这行代码的逻辑就是我那个python代码的逻辑。强大的shell呀。

ref: http://www.cnblogs.com/chengmo/archive/2010/10/13/1850145.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-05-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档