目录
简介
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。
语法
awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)
常用内置变量 | 说明 |
---|---|
$n | 指定分隔符后,当前的第n个列所在的字段 |
$0 | 完整的一行记录 |
FS | 字段分隔符,默认是空格 |
NF(Number of fields) | 字段分隔后,当前一共多少个字段 |
NR(Number of records) | 当前记录数,行数 |
常用符号 | 赋值 |
---|---|
?: | C条件表达式 |
|| | 逻辑或 |
&& | 逻辑与 |
~ 和 !~ | 匹配正则表达式和不匹配正则表达式 |
< <= > >= != == | 关系运算符 |
空格 | 连接 |
+ - | 加,减 |
* / % | 乘,除与求余 |
+ - ! | 一元加,减和逻辑非 |
^ *** | 求幂 |
++ -- | 增加或减少,作为前缀或后缀 |
$ | 字段引用 |
in | 数组成员 |
示例
1、输出第二列内容
awk '{print $2}' alx.txt
2、输出多列内容
直接在第一步后面的基础上追加,中间用 “,” 分割
awk '{print $2,$3}' alx.txt
3、查看第三行内容
考察对NR的使用,NR表示第N行记录的模式匹配
awk 'NR==3{print $0}' alx.txt
4、查看多行内容
awk 'NR==5,NR==6{print $0}' alx.txt
5、输出从第3到第五行,并显示行号
awk 'NR==3,NR==5 {print NR,$0}' alx.txt
6、自定义输出内容
某些情况下,需要给每一列添加类似于excel的表头信息,就可以考虑使用awk的自定义输出;
awk '{print "第一列: "$1,"第二列: "$2}' alx.txt
需要注意的是大括号外面的使用 ’ 单引号,括号里面的使用双引号