Linux命令行之文本处理awk

处理有分隔符的文本文档,默认分隔符是空格。

awk的一些内置变量

  • NF:字段数量(Number of Fields)
  • NR:当前记录号(Number of Records)
  • $0:当前记录(整行)
  • $1, $2, ...:当前记录的第1个、第2个等字段
  • FS:字段分隔符(Field Separator),默认为空格或制表符
  • OFS:输出字段分隔符(Output Field Separator),默认为空格
  • RS:记录分隔符(Record Separator),默认为换行符
  • ORS:输出记录分隔符(Output Record Separator),默认为换行符
awk 'pattern {action}' file
  • pattern:这是一个可选的正则表达式,用于匹配输入行的内容。如果省略,则对每一行都执行action
  • action:这是一个或多个命令,当pattern匹配时执行。
  • file:要处理的输入文件。如果省略,则从标准输入读取。

假设我们有一个名为data.txt的文件,内容如下:

John 25 Engineer
Alice 30 Doctor
Bob 28 Teacher

(1)输出每个人的姓名和年龄

awk '{print $1,$2}' data.txt

  

(2)输出年龄大于25的行

awk '$2 > 25 {print $0}' data.txt

awk -F: # 指定使用:作为行分隔符
posted @ 2024-07-12 18:29  瑾明达  阅读(32)  评论(0)    收藏  举报