首页 > 代码库 > awk用法(一)

awk用法(一)

awk用法(一)


awk跟以前的sed命令,grep命令比较,它的优势在于它能够实现更多的功能。

比如awk可以实现分段,sed,grep是没法实现的

可以根据一个分隔符,将其分为一小段一小段,通过段来匹配。

  • 知识点一:

awk -F ‘:‘ ‘{print $3,$4}‘ 1.txt 显示指定段的匹配== awk -F: ‘{print $3,$4}‘ 1.txt

-F ‘:‘指定冒号分隔符,$3指定第三段

$3,$4中间的逗号,实际显示的是空格分割。【比较下面截图可看出】

技术分享

技术分享

  • 知识点二:

awk -F ‘:‘ ‘OFS=":" {print $3,$4}‘ 1.txt

技术分享

OFS="任意分隔符",那下面我们来做一个实验,自定义OFS分隔符。结果如下:

技术分享

  • 知识点三:

awk ‘/root/‘ 1.txt 类似grep,sed的匹配功能

技术分享

  • 知识点四:

awk ‘/user|root/‘ 1.txt 匹配user或者匹配root,它和sed -r、grep -E,egrep效果一样。下面比较下它们几个用法区别,截图如下:

技术分享

但是awk直接可以使用特殊符号,比sed、grep功能强大,如:

awk ‘/r*o/‘ 1.txt 特殊符号直接使用

awk ‘/r.*o/‘ 1.txt

awk ‘/r?o/‘ 1.txt

awk ‘/r+o/‘ 1.txt

awk ‘/(00)+/‘ 1.txt

  • 知识点五:【面试时可能会问到!注意下!】

awk ‘/(00){2}/‘ 1.txt {}表示范围,出现了几次的oo匹配,这里注意,awk命令不支持{}次数写法!这里要与sed命令和grep命令区分,grep和sed都支持!!

#grep -E --color ‘(oo){2,10}‘ 2.txt

两次或者10次的oo,最小的显示起!截图如下:

技术分享

  • 知识点六:

awk -F ‘:‘ ‘$1~/r*o/‘ 1.txt

可以指定第一段中,包含r*o的都匹配显示出来。参考截图如下:

技术分享

  • 知识点七:

awk -F ‘:‘ ‘$1~/r*o/ {print $3}‘ 1.txt

可以指定第一段,包含r*o中匹配中的,精准打印其第三段!【参考知识点六】

技术分享


本文出自 “圣骑士控魔之手” 博客,请务必保留此出处http://wutengfei.blog.51cto.com/10942117/1908564

awk用法(一)