awk命令

作者: Ray昱成 | 来源:发表于2019-01-14 19:22 被阅读0次

awk 比较倾向于,将一行数据分成数个『栏位』来处理,默认的『栏位的分隔符号为 "空白键" 或 "[tab]键" 』。较sed命令作用于一整行数据不同的是,awk 适合处理小型的数据数据处理。

语法

awk '条件类型1{动作1} 条件类型2{动作2} ...' filename

  • 如果不需要限制,则条件类型可为空。
  • 每一行拆分后,每个栏位都是有变量名称的,那就是 1,2... 等

awk内置变量

image.png

awk 的处理流程

  • 读入第一行,并将第一行的数据按栏位拆分,填入 $0, $1, $2.... 等变量当中;
  • 依据 "条件类型" 的限制,判断是否需要进行后面的 "动作";
  • 做完所有的动作与条件类型;
  • 若还有后续的『行』的数据,则重复上面 1~3 的步骤,直到所有的数据都读完为止

示例

  • awk -F ':' '{print $1}' /etc/passwd 按照:进行分割,取第一个栏位
  • awk 'BEGIN {FS=":"} {print $1 "\t" $3}' /etc/passwd 同上,另外一种写法
  • awk -F ':' 'NR==1 {print $1}' /etc/passwd 按照:进行分割,如果目前处理的是第一行,则取第一个栏位
  • awk -F ':' 'NR==1 {print $1};$1=="admin" {printf $1 "\t" $3}' /etc/passwd
    多个动作时,利用分号或者回车键进行分割。

参考:http://cn.linux.vbird.org/linux_basic/0330regularex.php#awk

相关文章

网友评论

      本文标题:awk命令

      本文链接:https://www.haomeiwen.com/subject/njwjdqtx.html