awk的基本用法与高级用法

awk的基本用法与高级用法_第1张图片

本文主要解决四个问题:

第一问:awk的定义与来源是什么?

第二问:awk 的作用是什么?

第三:akw的命令格式是什么?

第四:awk的应用场景有哪些?请列举



第一问:awk的定义与俩源是什么?


awk是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。

这种编程及数据操作语言的最大功能取决于一个人所拥有的知识。

awk——其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母;


第二问:awk的作用是什么?


awk——最强大的功能就是搜索,查找,过滤;

awk的特点是查找简单方便精准;


第三问:awk的命令格式是什么?


答:awk常用的命令格式如下:

第一种:前置命令  |  awk   [ 选项 ]    '条件(也可以理解为位置符){指令}'

例如:df  -h  |   awk   '/ \ / $ / { print  $2 }'

译为:df  -h  指的是查看系统磁盘信息;

            |   管道常用与交代交接任务,把前面任务的执行结果交给后面的命令处理;

            awk 是一个非常好的文本处理工具,主要用于搜索和提取文本中的信息;

            /  \ /$ /  两边的/ / 值的是在awk中使用正则符号需要用的斜杠,\这个斜杆主要用于转义/这个斜杠,避免系统误读,/$指的是以 / 结尾;

           {print  $2}  print答印的意思,$2值的是文本中以空格为分隔符的第二列;

           ''    单引号是使用awk工具时固定的格式;

整体译为:运用df  -h  查看系统磁盘的信息,然后由管道交给awk去检索以 / 根号结尾的行,并找出行中第二列的信息输出到屏幕上;

第二种:awk  [选项]   '条件{指令}'      目标文件;

例如:awk      ' / ^ root / { print  $3} '    /etc/passwd


第四:awk的应用场景有哪些?请列举


awk的应用场景有:

第一、精确查找输出特定的字符;

第二、应用于脚本中,进行自动化的查找和匹配文件;

例如:运用awk和for循环等工具筛选过滤出 /etc/passwd 文件中,以 bash 做为解释器的用户,在 /etc/shadow 文件找到与他们相互匹配的密码,并输出到屏幕上;

思路:

第一步:运用awk查找出用bash作为解释器的用户有哪些?

命令为:awk     -F:  ' / bash$ / { print  $1 }'    /etc/passwd

                a=`awk     -F:  ' / bash$ / { print  $1 }'    /etc/passwd`    

                将这条命令输出的结果赋值给变量a

译为:awk 一款非常用的检索提取文本文件中字符的工具;

            -F:  是awk中的一个常用选项之一,主要用来定义分割符;

             ' '     单引号是awk固定的格式;

             / bash$ /    是正则表达式,译为检索以bash结尾的行;

             { print $1}  指的是件文件中的第一列打印输出到屏幕上;

              /etc/passwd 是目标文件;

整体译为:运用awk工具检索出/etc/passwd文件中,以bash结尾的行,并把它第一列的字符输出到屏幕上;


第二步:运用grep过滤出/etc/shadow这个文件中上一步筛查出来的用户的秘密;

命令格式为:grep  $a   /etc/shadow

第三步:把过滤出来的结果交给awk处理;

命令格式为:grep   ^$a:   /etc/shadow   |    awk   -F:   ' { print $1,"——>",$2 }  '

译为:$1和$2指的是文本文件中以:冒号作为分割符的第一第二列;

最后输出结果应为:

root --> $6$UiGI4Tc2$htsXYn5cJnOqv3P1VLcUSgfjDu2pL5yiJBuua6foZAHdwqeuLHfYUfS/vBn27Wjvoel8EJgtdsMjyquqvKAmf1

student --> $6$8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X80

haha --> $6$LRbiwJyP$sg2wx3eqgvhbeq2cFLntBN43LGp9OxcBMsCpEJBxcYEb8ti1/rwDTZqzDNOi71BrHyFDecyCrSzTc9Hxu64pC/


以上......


祝:顺利!

罗贵

2019-03-12于深圳

你可能感兴趣的:(awk的基本用法与高级用法)