本文主要解决四个问题:
第一问: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于深圳
网友评论