TongXu-Server

Awk

awk

  • 语法
awk options `pattern {action}` file
  • options
    • -F <分隔符> 或 –field-separator=<分隔符>: 指定输入字段的分隔符,默认是空格,使用这个选项可以指定不同于默认分隔符的字段分隔符。
    • -v <变量名>=<值> :设置awk内部变量的值,可以使用该选项将外部值传递给awk脚本中的变量
    • -f <脚本文件> 指定一个包含awk脚本的文件,这样可以在文件中编辑较大的awk脚本,然后通过-f选项将其加载。
    • -V 或–version 显示awk的版本信息
    • -h 或 –help 显示awk的帮助信息,包括选项和用法示例。
  • 例子
awk '{print}' file #打印整行
awk '{print $1,$2}' file  #打印特定列
awk -F ',' '{print $1,$2}' file #使用分隔符指定列
awk '{print NR,$1}' file #打印行数
awk '/pattern/{print NR,$0}' file  #打印满足条件的行
awk '{sum += $1} END {print sum}' file  #计算列的总和
awk 'max < $1 {max = $1} END {print max}' file  #打印最大值
awk '{printf "%-10s %-10s\n",$1,$2}' file  #格式化输出
  • 基本用法
awk '{[pattern] action}' {filenames}
awk '{print $1,$4}' log.txt  #按空格或tab键分割,输出文件中的1,4项
awk '{printf "%-8s %-10s\n",$1,$4}' log.txt #格式化输出1,4项
awk -F, '{print $1,$4}' log.txt #使用逗号进行分割
awk -F '[ ,:]' '{print $1,$2}' log.txt #使用多个分隔符,先使用空格再使用,再使用:进行分割
awk -v a=1 '{print $1,$1+a}' log.txt  #设置变量
  • 运算符
awk '$1>2' log.txt