文本处理工具awk的使用


awk命令简介

awk是一门编程语言,专门用于处理文本数据。它可以将文本按照指定的分隔符分割成字段,然后对每个字段进行计算、比较、转换等操作。awk非常适合处理结构化的数据,如CSV文件、日志文件等 。

基本用法详解

命令格式

awk [选项] '匹配规则{命令}' 文件

选项列表

  • −F:字段的分隔符,可以指定多个。

内置变量

  • NF:当前处理行的字段个数。
  • NR:当前处理行的行号,行号从1开始。
  • $0:当前处理行的整行内容。
  • $n:当前处理行的第n个字段(第n列)。

使用示例

1、awk [选项] '匹配规则' 文件:打印与匹配规则相匹配的行。匹配规则可以使用>、<、==、!=、&&、||等操作符。

1.1、'变量==值':变量等于指定值。

awk
  • 'NR==3':打印第3行的内容。

1.2、'变量!=值':变量不等于指定值。

awk
  • 'NR!=3':打印除第3行外的内容。

1.3、'/字符串/':查找含有指定字符串的文本行。

awk
  • '/Parto/':打印含有字符串Parto的文本行。

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

awk
  • '/^10003/':打印以10003开头的文本行。

1.5、'规则1&&规则2...':查找符合所有规则的文本行。

awk
  • 'NR>3&&NR<5':打印第3行和第5行间的内容。

1.6、'规则1||规则2...':查找符合某一规则的文本行。

awk
  • 'NR==3||NR==5':打印第3行或第5行的内容。

2、awk −F '分隔符' '匹配规则' 文件:使用分隔符分隔内容为字段并对字段进行规则匹配。匹配规则可以使用>、<、==、!=、&&、||等操作符。

2.1、'字段==值':字段等于指定值。

awk
  • '$1==10003':使用逗号分隔内容并打印第1个字段值为10003的文本行。

2.2、'字段>值':字段大于指定值。

awk
  • '$1>10003':使用逗号分隔内容并打印第1个字段值大于10003的文本行。

3、awk −F '分隔符' '{命令}' 文件:使用分隔符分隔内容为字段并对字段执行命令。

3.1、'{print $0}':打印所有字段值。

awk
  • '{print $0}':打印所有的字段值。

3.2、'{print 字段}':打印单个字段值。

awk
  • '{print NF}':打印最后一个字段的字段编号。
  • '{print $NF}':打印最后一个字段的字段值。

3.3、'{print 字段1, 字段2, ...}':打印多个字段值。

awk

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

awk

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

4.1、'匹配规则{命令}':对符合规则的行执行命令。

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

发表评论

评论数量:0