Linux使用awk实现多行合并的实例

2016-02-19 11:28 8 1 收藏

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐Linux使用awk实现多行合并的实例,无聊中的都看过来。

【 tulaoshi.com - Linux教程 】

在Linux系统中使用awk文本处理工具,有时需要将多行合并,这就需要用到awknext语句了,下面图老师小编就给大家介绍下Linux中使用awk实现多行合并的方法,需要的朋友可以来了解下。

 Linux使用awk实现多行合并的实例

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

awknext语句使用:在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句。而进行下一行匹配。

代码如下:

text.txt 内容是:

a

b

c

d

e

[chengmo@centos5 shell]$ awk ‘NR%2==1{next}{print NR,$0;}’ text.txt

2 b

4 d

当记录行号除以2余 1,就跳过当前行。下面的print NR,$0也不会执行。 下一行开始,程序有开始判断NR%2 值。这个时候记录行号是:2 ,就会执行下面语句块:‘print NR,$0’

awk next使用实例:

代码如下:

要求:

文件:text.txt 格式:

web01[192.168.2.100]

httpd ok

tomcat ok

sendmail ok

web02[192.168.2.101]

httpd ok

postfix ok

web03[192.168.2.102]

mysqld ok

httpd ok

需要通过awk将输出格式变成:

web01[192.168.2.100]: httpd ok

web01[192.168.2.100]: tomcat ok

web01[192.168.2.100]: sendmail ok

web02[192.168.2.101]: httpd ok

web02[192.168.2.101]: postfix ok

web03[192.168.2.102]: mysqld ok

web03[192.168.2.102]: httpd ok

分析:

分析发现需要将包含有web行进行跳过,然后需要将内容与下面行合并为一行。

[chengmo@centos5 shell]$ awk ‘/^web/{T=$0;next;}{print T:t$0;}’ test.txt

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

web01[192.168.2.100]: httpd ok

web01[192.168.2.100]: tomcat ok

web01[192.168.2.100]: sendmail ok

web02[192.168.2.101]: httpd ok

web02[192.168.2.101]: postfix ok

web03[192.168.2.102]: mysqld ok

web03[192.168.2.102]: httpd ok

上面就是Linux使用awk进行多行合并的方法介绍了,在文中使用next语句是十分方便的,在循环匹配中,如果遇到next,就会自动跳过,从而实现多行合并。

来源:http://www.tulaoshi.com/n/20160219/1597663.html

延伸阅读
标签: 电脑入门
Linux系统中,lsof命令可用于查找应用程序打开的文件名称和数量,除此之外,losf命令还有很多用法,下面系统之家的图老师小编就给大家介绍下Linux中lsof命令的用法实例,一起来看看吧。 lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问...
标签: 电脑入门
在之前的文章中我们有介绍过Docker的安装(详见系统之家如何在CentOS6.5系统中安装Docker),不少朋友在安装后不知要如何使用Docker容器,下面图老师小编就给大家介绍下Linux如何使用Docker容器。 1.启动一个Docker容器 [root@localhost ~]# docker run -i -t Ubuntu /bin/bash Unable to find image ‘ubuntu’ locally ...
标签: 电脑入门
从网上下载的数据格式经常是一项数据一行,而我们经常需要把一大篇文本中的内容每两行文字连接成一行,有时甚至需要把更多的行连接成一行。手工复制粘贴显然是很麻烦的,其实在WPS文字2007中要处理这类问题是很简单的。下面就用WPS 2007个人版的WPS文字来介绍一下具体操作。 1.启动WPS文字2007,单击菜单文件/打开,在打开窗口中选择文件类型...
标签: 服务器
Linux系统抓包命令tcpdump使用实例   tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04。 tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump可以查看tcpdump的详细说明,这边只列一些笔者自己常用的参数: tcpdump [-i 网卡] -nnAX '表达式' 各参数说明如...
标签: 电脑入门
在Linux系统操作中,为了增加系统的安全性,可使用屏幕键盘,用鼠标进行操作。那么Linux如何使用屏幕键盘呢?其实有很多软件都能够开启屏幕键盘的,随图老师小编一起来学习下吧。 在 Linux 中有几个可用的开源键盘软件, 比如 GOK (Gnome 的屏幕键盘),kvkbd,onboard,Florence。 我会在这个教程中集中讲解 Florence, 告诉你如何用 Flore...

经验教程

395

收藏

39
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部