每个程序都是一个或多个模式动作序列。每个模式一次匹配文本的每一行。直到输入完毕。 都是用 符号操作。shell中的 后有{}号,awk一般不使用{}号。
使用 模式-动作 语句 ex:
awk ' $3 > 0 {print $1 $2 $3} {FS= " "} ' awk1.txt awk 指明使用的是awk程序awk1.txt 对awk1.txt文本进行操作‘xxxx’ 模式动作模块$3 > 0模式。利用该模式扫一遍所有的行。{print xxx} 动作。对符合条件的进行动作。{FS} 指定内建变量主要分成四部分:
awk命令操作的文本:可以有多个模式:可以没有动作:放在{}里 模式-动作部分被’ ‘单引号包围,可以方便的放在shell中使用。 在awk中可以指定分隔符(默认是空格) // 指定singla为默认分隔符 awk -F singal {xx}用来选择符合要求的行。也可以没有模式,只有动作。 通过列来选择行。 n:选择第n行。这里是从1开始编号的, 0表示所有的行
// 选择第三列值>3的所有行 $3>0 // 选择所有内容 $0 // == 选择指定内容的 $1 = "Mark" // 使用与或非等逻辑运算 $1 == "Mark" || $1 == "Mary" !($3>0)在print中可以进行数据运算,添加打印内容,添加空格等操作
// 打印所有内容 print $0 // 打印第n列 print $n // 打印字段的个数(number of field) print NF > print NF $1 > 3xxxx // 打印最后一个字段 print $(NF-1) // 打印行号(number of row) print NR $0 > print NR $1 > 1 xx // 输出排序后的内容 print $2 | sort -n