介绍
基本概念
awk不仅能以行为单位处理还能以列为单位处理。缺省列分割符是空格或TAB,也可以自定义。
命令行调用方式
awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)
- -F 指定输入文件拆分符
- -f 从脚本文件中读取awk 命令
- -v 设置变量
脚本调用方式
将所有的awk命令写入文件中,指定awk解释器执行脚本,类似shell 脚本,也可以在命令行下加上 -f 参数直接指定文件去执行
#!/bin/awk -f
....
举例
打印data.txt 中第二列
$1
表示第一列 $2
表示第二列..$NF
表示最最后一列,$0
表示整个当前行
输出是否及格
利用BEGIN和END统计行数
BEGIN 会在开始处理之前执行,END会在处理完成之后执行
cut 命令
- -c 按照字符个数切割
- -b按照byte切割
- -d 指定分割域符
- -f 指定要切出那几个域
sort 命令
- -u 去除重复行
- -r 降序
- -o 将结果写回到原文件
- -n 按照数字排序,非字符
- -t 指定分隔符
- -k 指定以第几列为关键字排序
- -k x.y 从第x列第y个字符开始比较
- -k x1.y1,x2.y2 指定区间排序
- -f 忽略大小写
- -c 检查文件是否已经排好序,如果乱序,输出第一个乱序的行,退出码为1
-
- C检查文件是否已经排好序,如果乱序,不输出内容,仅返回1
- -M以月份来排序
- -b 忽略每一行前面的所有空白部分,从第一个可见字符开始比较
uniq 命令
读取输入文件比较相邻的行,去掉重复的行。
- -c 显示输出中,在每行的行首加上本行在文件中出现的次数
- -d 只显示重复行
- -u 只显示文件中不重复的行