美文网首页
awk的基本用法与高级用法

awk的基本用法与高级用法

作者: RealLuo | 来源:发表于2019-03-12 21:12 被阅读0次

    本文主要解决四个问题:

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

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

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

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


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


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

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

    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的基本用法与高级用法

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