介绍:

  awk是一种可以处理数据,产生格式化报表的语言。其工作方式是读取数据文件,将每一行数据视为一条记录,没笔记录按分隔符(默认空格)分割成若干字段,输出各字段的值。

实例:

[jboss@vm-kvm11902-app ~]$ cat test.txt
eth0 Link encap:Ethernet HWaddr 00:1A:4A:68:11:23
inet addr:10.221.4.166 Bcast:10.221.4.255 Mask:255.255.255.0
inet6 addr: fe80::21a:4aff:fe68:1123/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:255862464 errors:0 dropped:0 overruns:0 frame:0
TX packets:277983408 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:66805026750 (62.2 GiB) TX bytes:37979102088 (35.3 GiB) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12789957 errors:0 dropped:0 overruns:0 frame:0
TX packets:12789957 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:706680171 (673.9 MiB) TX bytes:706680171 (673.9 MiB)

用法1:

显示指定文件中包含指定字符串的数据行

awk '/inet/' test.txt  #查找test.txt中包含inet的数据行
[jboss@vm-kvm11902-app ~]$ awk '/inet/' test.txt
inet addr:10.221.4.166 Bcast:10.221.4.255 Mask:255.255.255.0
inet6 addr: fe80::21a:4aff:fe68:1123/64 Scope:Link
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host

用法2:

显示指定文件每行指定字段

awk '{print $1, $2}' test.txt  #显示test.txt文件中每行第一、二字段
[jboss@vm-kvm11902-app ~]$ awk '{print $1, $2}' test.txt
eth0 Link
inet addr:10.221.4.166
inet6 addr:
UP BROADCAST
RX packets:255862464
TX packets:277983408
collisions:0 txqueuelen:1000
RX bytes:66805026750 lo Link
inet addr:127.0.0.1
inet6 addr:
UP LOOPBACK
RX packets:12789957
TX packets:12789957
collisions:0 txqueuelen:0
RX bytes:706680171

用法3:

用法1+用法2

awk '/inet/{print $1, $2}' test.txt    #显示test.txt文件中包含inet数据行的第一、二个字段
[jboss@vm-kvm11902-app ~]$ awk '/inet/{print $1, $2}' test.txt
inet addr:10.221.4.166
inet6 addr:
inet addr:127.0.0.1
inet6 addr:

用法4:

使用-F指定新的分隔符

awk -F: '/inet/{print $1, $2}' test.txt  #显示test.txt文件中,包含inet的数据行,按照“:”进行分割的第一、二个字段
[jboss@vm-kvm11902-app ~]$ awk -F: '/inet/{print $1, $2}' test.txt
inet addr 10.221.4.166 Bcast
inet6 addr fe80
inet addr 127.0.0.1 Mask
inet6 addr

用法5:

使用BEGIN{OFS="***"}重新定义分隔符

awk -F: 'BEGIN{OFS="***"}/inet/{print $1, $2}' test.txt  #显示test.txt文件中,包含inet的数据行,按照“:”进行分割的第一、二个字段后按照分隔符“***”重新进行拼接的记录
[jboss@vm-kvm11902-app ~]$ awk -F: 'BEGIN{OFS="***"}/inet/{print $1, $2}' test.txt
inet addr***10.221.4.166 Bcast
inet6 addr*** fe80
inet addr***127.0.0.1 Mask
inet6 addr***

举个栗子

[jboss@vm-kvm11902-app ~]$ ifconfig | grep 'inet addr' | grep Bcast | awk  '{print $2}' | awk -F: '{print $2}'
10.221.4.166

【Linux】awk指令的更多相关文章

  1. Linux awk指令详解

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  2. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  3. linux awk命令详解,使用system来内嵌系统命令, awk合并两列

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  4. Linux常用指令(三)

    进入京东运维组实习,收到了很多同事的热心指导,自己也努力学习,按照他们给出的学习计划,真的很充实,学到了很多不只是开发方面的知识. 以下简单记录下自己的笔记,方便以后查阅. 1.文件系统 Linux系 ...

  5. linux常用指令

    整理下来的linux常用指令 mount [-t 文件系统] 设备文件名 挂载点挂载命令,一般用于在挂载ISO,或者其他比如U盘等设备时使用,[-t iso9660]为固定格式,可写可不写,非必写项. ...

  6. Linux压缩指令

    1.windows系统和Linux系统的压缩文件只有zip格式的是通用的 2.windows系统可以解压几乎所有的Linux压缩格式 3.Linux压缩指令 gzip 指令 格式: gzip 压缩的文 ...

  7. Linux相关指令

    Linux相关指令 1.find文件搜索功能 find [目录列表] [匹配参数] [匹配标准] -name :按文件名称进行搜索 -group :按文件所属组进行搜索 -user :按文件拥有者进行 ...

  8. linux awk 中 RS,ORS,FS,OFS 区别与联系【转】

    linux awk 中 RS,ORS,FS,OFS 区别与联系 http://blog.csdn.net/jesseen/article/details/7992929

  9. Linux基础指令

    Linux基础指令 只写了最简单的一些文件操作,基本没有带参数 查看当前目录 pwd 跳转到某路径 cd 查看当前目录下的文件 ls ls -l // -l 查看详细信息 打开当前所在文件夹 open ...

  10. Linux进阶指令(重点)

    三.Linux进阶指令(重点) 1.df指令    作用:查看磁盘的空间 #df -h 选项:-h    表示以可读性较高的形式展示大小 2.free指令     作用:查看内存使用情况 #free ...

随机推荐

  1. gevent模块学习(四)

    gevent.spawn会对传入的子任务集合进行调度,gevent.joinall 方法会阻塞当前程序,除非所有的greenlet都执行完毕,才会退出程序 公有方法 gevent.spawn(cls, ...

  2. 【转】IIS - 自动申请、部署Let's Encrypt的免费SSL证书

    IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161   一.HTTPS 协议介绍 1,什么是 HTTP ...

  3. js中字节B转化成KB,MB,GB

    function change(limit){ var size = ""; if(limit < 0.1 * 1024){ //小于0.1KB,则转化成B size = l ...

  4. linux 下mysql多实例安装

    1.软件下载 https://dev.mysql.com/downloads/file/?id=479096 免编译二进制包 mysql-5.6.21-linux-glibc2.5-x86_64.ta ...

  5. C# Global.asax.cs 定时任务

    定时执行更新Redis缓存操作 protected void Application_Start(object sender, EventArgs e) { Timer timer = new Tim ...

  6. Android系统中是否开启定位及定位模式的判断

    1.关于Android系统中不同的定位模式 Android系统中包括3中定位模式:   使用GPS.WLAN和移动网络 使用WLAN和移动网络 仅使用GPS 截图 特点 同时使用GPS.WIFI及基站 ...

  7. R语言RODBC数据库操作

    最近准备做一个股票的数据库,用R语言来获取数据,然后存在SQL Sever 2016 express 里面,虽然前面接触过一些操作,但是还是很不熟悉,现在数据已经能获取到了,是时候好好学习一下怎么用R ...

  8. 入门html第一次copy小米首页布局

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  9. 解决eclipse的自动换行问题。

    安装方法:使用Eclipse 的自动升级功能,菜单栏选Help → install new Software 点解Add按钮,在“ Name ”中填入“ wordwrap ”,“ URL ”中填入“  ...

  10. Java容器解析系列(10) Map AbstractMap 详解

    前面介绍了List和Queue相关源码,这篇开始,我们先来学习一种java集合中的除Collection外的另一个分支------Map,这一分支的类图结构如下: 这里为什么不先介绍Set相关:因为很 ...