awk命令

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命令的基本使用 [root@shellscript ~]# head -n 3 /etc/passwd | ...
    古寒飞阅读 4,675评论 0 2
  • linux awk命令详解 来源:ggjucheng 链接:http://www.cnblogs.com/ggju...
    meng_philip123阅读 4,310评论 0 1
  • 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤...
    ad085d162310阅读 4,765评论 0 1
  • 本章主要学习内容awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 a...
    楠人帮阅读 5,046评论 0 8
  • 一、简介 awk命令是一种编程语言,用于在linux/unix下对文本和数据进行扫描和处理的工具,其数据来源可以为...
    小尛酒窝阅读 12,782评论 0 0