精通awk系列(8):awk划分字段的3种方式
回到: Linux系列文章 Shell系列文章 Awk系列文章 详细分析awk字段分割 awk读取每一条记录之后,会将其赋值给 $0 ,同时还会对这条记录按照 预定义变量FS 划分字段,将划分好的各个字段分别赋值给 $1 $2 $3 $4...$N ,同时将划分的字段数量赋值给 预定义变量NF 。 引用字段的方式 $N 引用字段: N=0 :即 $0 ,引用记录本身 0<N<=NF :引用对应字段 N>NF :表示引用不存在的字段,返回空字符串 N<0 :报错 可使用变量或计算的方式指定要获取的字段序号。 awk '{n = 5;print $n}' a.txt awk '{print $(2+2)}' a.txt # 括号必不可少,用于改变优先级 awk '{print $(NF-3)}' a.txt 分割字段的方式 读取record之后,将使用预定义变量FS、FIELDWIDTHS或FPAT中的一种来分割字段。分割完成之后,再进入main代码段(所以,在main中设置FS对本次已经读取的record是没有影响的,但会影响下次读取)。 划分字段方式(一):FS或-F FS 或者 -F :字段分隔符 FS为单个字符时,该字符即为字段分隔符 FS为多个字符时,则采用正则表达式模式作为字段分隔符 特殊的,也是FS默认的情况, FS为单个空格时,将以连续的空白(空格、制表符、换行符