awk命令简介
awk是一门编程语言,专门用于处理文本数据。它可以将文本按照指定的分隔符分割成字段,然后对每个字段进行计算、比较、转换等操作。awk非常适合处理结构化的数据,如CSV文件、日志文件等 。
基本用法详解
命令格式
awk [选项] '匹配规则{命令}' 文件
选项列表
- −F:字段的分隔符,可以指定多个。
内置变量
- NF:当前处理行的字段个数。
- NR:当前处理行的行号,行号从1开始。
- $0:当前处理行的整行内容。
- $n:当前处理行的第n个字段(第n列)。
使用示例
1、awk [选项] '匹配规则' 文件:打印与匹配规则相匹配的行。匹配规则可以使用>、<、==、!=、&&、||等操作符。
1.1、'变量==值':变量等于指定值。

- 'NR==3':打印第3行的内容。
1.2、'变量!=值':变量不等于指定值。

- 'NR!=3':打印除第3行外的内容。
1.3、'/字符串/':查找含有指定字符串的文本行。

- '/Parto/':打印含有字符串Parto的文本行。
1.4、'/正则表达式/':查找含有与正则相匹配的字符串的文本行。

- '/^10003/':打印以10003开头的文本行。
1.5、'规则1&&规则2...':查找符合所有规则的文本行。

- 'NR>3&&NR<5':打印第3行和第5行间的内容。
1.6、'规则1||规则2...':查找符合某一规则的文本行。

- 'NR==3||NR==5':打印第3行或第5行的内容。
2、awk −F '分隔符' '匹配规则' 文件:使用分隔符分隔内容为字段并对字段进行规则匹配。匹配规则可以使用>、<、==、!=、&&、||等操作符。
2.1、'字段==值':字段等于指定值。

- '$1==10003':使用逗号分隔内容并打印第1个字段值为10003的文本行。
2.2、'字段>值':字段大于指定值。

- '$1>10003':使用逗号分隔内容并打印第1个字段值大于10003的文本行。
3、awk −F '分隔符' '{命令}' 文件:使用分隔符分隔内容为字段并对字段执行命令。
3.1、'{print $0}':打印所有字段值。

- '{print $0}':打印所有的字段值。
3.2、'{print 字段}':打印单个字段值。

- '{print NF}':打印最后一个字段的字段编号。
- '{print $NF}':打印最后一个字段的字段值。
3.3、'{print 字段1, 字段2, ...}':打印多个字段值。

3.4、'{print 字段1"分隔符"字段2"分隔符" ...}':打印多个字段值并使用指定分隔符分隔,默认分隔符为空格。

4、awk −F '分隔符' '匹配规则{命令}' 文件:使用分隔符分隔内容并对符合规则的行执行命令。
4.1、'匹配规则{命令}':对符合规则的行执行命令。

- 'NR>3{print $1,$NF}':打印行号大于3的第一个和最后一个字段的字段值。