AWK小结

来源:互联网 发布:比邻软件 编辑:程序博客网 时间:2024/05/21 13:58

介绍

Awk是一门脚本语言,在linux下面有一个awk工具,一般配合sed工具使用

The AWK Programming Language(book)

Awk处理流程

  1. Awk reads all input either from standard input or files.
  2. The input is read in unit called records, default is a line
  3. Each record will processed by rule of the program, and will split to chunks called fields.

Awk关键字

变量 定义 $0 整个record(默认为一行) 1 n 第n个filed NF 当前record的有多少个filed NR 当前文件第几个record FNR 所有文件的第几个record FS 输入filed的分隔符,默认为空格 RS 输入record的分隔符,默认为空行

Awk语法

  • BEGIN{action //here put the code that will processed before read record like define some variables, if not need, ignore it }
  • //match pattern {action//here put the code will be processed in every record} (Can be more than ones)
  • END {action //here put the code will be processed after all record all processed, if not need, ignore it }

用例

用例1

awk ‘{print $3, $9, $5 }’

awk ‘NR!=1 {print $3, $9, $5 }’

awk ‘NR!=1 {printf “%-10s %-25s %10s\n”,$3, $9, $5 } ’

awk ‘NR!=1 && $3==”ewajinx” {printf “%-10s %-25s %10s\n”,$3,$9, $5 }’

用例2

awk ‘BEGIN{print “calculating …..”} {sum+=$5} END {print sum}’

用例3

可以使用-F指定其他分割符.
cat file.txt | awk -F, ‘{print 1","3 }’这里我们使用,作为字段分割符,同时打印第一个和第三个字段。 如果该文件内容如下: Adam Bor, 34, IndiaKerry Miller, 22, USA
命令输出结果为:Adam Bor, IndiaKerry Miller

原创粉丝点击