【Linux】awk指令
介绍:
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指令的更多相关文章
- Linux awk指令详解
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- linux awk命令详解
linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...
- linux awk命令详解,使用system来内嵌系统命令, awk合并两列
linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...
- Linux常用指令(三)
进入京东运维组实习,收到了很多同事的热心指导,自己也努力学习,按照他们给出的学习计划,真的很充实,学到了很多不只是开发方面的知识. 以下简单记录下自己的笔记,方便以后查阅. 1.文件系统 Linux系 ...
- linux常用指令
整理下来的linux常用指令 mount [-t 文件系统] 设备文件名 挂载点挂载命令,一般用于在挂载ISO,或者其他比如U盘等设备时使用,[-t iso9660]为固定格式,可写可不写,非必写项. ...
- Linux压缩指令
1.windows系统和Linux系统的压缩文件只有zip格式的是通用的 2.windows系统可以解压几乎所有的Linux压缩格式 3.Linux压缩指令 gzip 指令 格式: gzip 压缩的文 ...
- Linux相关指令
Linux相关指令 1.find文件搜索功能 find [目录列表] [匹配参数] [匹配标准] -name :按文件名称进行搜索 -group :按文件所属组进行搜索 -user :按文件拥有者进行 ...
- linux awk 中 RS,ORS,FS,OFS 区别与联系【转】
linux awk 中 RS,ORS,FS,OFS 区别与联系 http://blog.csdn.net/jesseen/article/details/7992929
- Linux基础指令
Linux基础指令 只写了最简单的一些文件操作,基本没有带参数 查看当前目录 pwd 跳转到某路径 cd 查看当前目录下的文件 ls ls -l // -l 查看详细信息 打开当前所在文件夹 open ...
- Linux进阶指令(重点)
三.Linux进阶指令(重点) 1.df指令 作用:查看磁盘的空间 #df -h 选项:-h 表示以可读性较高的形式展示大小 2.free指令 作用:查看内存使用情况 #free ...
随机推荐
- 设计模式之Factory模式(C++)
Factory模式具有两大重要的功能: (1).定义创建对象的接口,封装了对象的创建: (2).使具体化类工作延迟到了子类中. //Product.h #ifndef _PRODUCT_H_ #def ...
- Dubbo常用配置解析
一.多版本的支持 如何发布服务,需要将需要暴露的服务接口发布出去供客户端调用,需要在java同级目录新建一个resources目录,然后将resoureces目录标记成Test Resoureces ...
- ubuntu上安装并使用mysql数据库
一.安装Mysql 最简单的方式就是apt-get安装 安装核心程序 sudo apt-get install mysql-client-core-5.6 安装客户端程序 sudo apt-get i ...
- oracle数据库 查看被锁定表及解锁方法
最近做项目,遇到了更新超时的问题,反复检查数据都正常,纳闷完了忽然想到是不是表被锁定了,一看果然,解决办法如下: --锁表查询语句 SELECT object_name, machine, s.sid ...
- python变量存储
变量的存储 在高级语言中,变量是对内存及其地址的抽象. 对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的只 ...
- Python之set方法
class set(object): """ set() -> new empty set object set(iterable) -> new set o ...
- 1 实现添加功能 1.1 定义一个学员类(Student),在Student类中定义姓名、性别和年龄属性,定义有 参数的构造方法来初始化所以的成员属性 1.2 创建学员类对象来存放学员信息,并且为每一个学生对象添加的相应的编号。并将 学员类对象添加到Map<Integer,Student>集合中 1.3 添加完成后,显示所有已添加的学员姓名 1.4 限制年龄文本框只能输入正整数,否则的会采
学生类 package com.lanxi.demo1_3; public class Student { private String name; private String sex; priva ...
- 使用LinkedList类生成一个集合对象,循环加入“小样1”,“小样2”,“小样3”,“小样4”,“小样5”……“小样100”。输出这个集合的大小。再使用循环删除这个集合中所有名字为偶数的对象,比如“小样6”,“小样100”,都是偶数名。最后:循环输出集合中所有的对象,看是否删除成功。
package com.lanxi.demo1_8; import java.util.Iterator; import java.util.LinkedList; public class Test ...
- uboot中往s5p6818的emmc刷写内容
建立分区: fdisk :: : fdisk Partition Map -- Partition Type: DOS Part Start Sector Num Sectors UUID Type ...
- Visitor 模式心得
最近读到Visitor模式,还是一知半解的.偶然翻到Uncle Bob对该模式的推导过程,有所心得,和大家分享一下. Uncle Bob 的链接是: http://butunclebob.com/Ar ...