AWK简单的使用
AWK介绍
AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。AWK提供了极其强大的功能:可以进行正则表达式的匹配,样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上AWK的确拥有自己的语言:AWK程序设计语言,三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。gawk是AWK的GNU版本
基本使用
以test-awk.txt文件为例
+—————————+————————————–+
| Field | Value |
+—————————+————————————–+
| admin_state_up | True |
| id | 48a76057-afb0-4031-9dc2-11914113bc39 |
| name | coffee_net-6163 |
| provider:network_type | vlan |
| provider:physical_network | physnet2 |
| provider:segmentation_id | 136 |
| router:external | False |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | 7f67af7413074a85b751eaf997d59ae7 |
+—————————+————————————–+需求:查找第四列所有类容
# cat test-awk.txt | awk '{print $4}'
Value True 48a76057-afb0-4031-9dc2-11914113bc39 coffee_net-6163 vlan physnet2 136 False False ACTIVE | 7f67af7413074a85b751eaf997d59ae7
需求:查找第五行所有类容
# cat test-awk.txt | awk 'NR==5'
| id | 48a76057-afb0-4031-9dc2-11914113bc39 |
需求:查找第五行、第四列类容
# cat test-awk.txt |awk 'NR==5 {print $4}'
48a76057-afb0-4031-9dc2-11914113bc39