3.3.4.2 字段

    awk 设计的重点就在字段与记录上:awk 读取输入记录(通常是一些行),然后自动将各个记录切分为字段。awk 将每条记录呃逆的字段数目,存储到内建变量 NF。
 
    默认以空白分隔字段--例如空格与制表字符(或两者混用),像 join 那样。这通常就足够使用了,不过,其实还有其他选择:你可以将 FS 变量设置为一个不同的值,也可以变更 awk 分隔字段的方式。如使用单个字符,该字符出现一次,即分隔出一个字段(像 cut -d那样)。或者,awk 特别指出就是:也可以设置它为一个完整的 ERE ,这种情况下,每一个匹配该 ERE 的文本都将视为字段分隔字符。
 
    如需字段值,则是搭配 $ 字符。通常 $ 之后会接着一个数值常数,也可能是接着一个表达式,不过多半是使用变量名称。列举几个例子如下:
 
        awk  '{ print $1 }'                         打印第1个字段(未指定 pattern)
        awk  '{ print $2, $5}'                    打印第2与第5个字段(未指定 pattern)
        awk  '{ print $1, $NF}'                 打印第1个与最后一个字段(未指定 pattern)
        awk  ' NF > 0  { print $0 }'          打印非空行(指定 pattern 与 action )
        awk  ' NF > 0 '                            同上(未指定 action ,则默认为打印)
 
    比较特别的字段是编号 0:表示整条记录。
posted @ 2019-01-23 10:04  Avention  阅读(109)  评论(0编辑  收藏  举报