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中间的逗号,实际显示的是空格分割。【比较下面截图可看出】

wKioL1jPnquRgMQdAAAHxctw8uY427.png-wh_50

wKioL1jPnvKg2jrEAAAHoXVrZ1A130.png-wh_50

  • 知识点二:

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

wKiom1jPn-iC1STnAAAI9YChlNY450.png-wh_50

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

wKioL1jPoJihN4xJAAAI9HFd4jI950.png-wh_50

  • 知识点三:

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

wKiom1jPohWw2ZP9AAAd9fLbkuo885.png-wh_50

  • 知识点四:

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

wKiom1jPzP-A3fcwAABF-LL3xZQ986.png-wh_50

但是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,最小的显示起!截图如下:

wKioL1jP0B7xFBFqAAAHihwQvX8524.png-wh_50

  • 知识点六:

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

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

wKiom1jP0lvQovCYAAArysTRn1k484.png-wh_50

  • 知识点七:

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

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

wKiom1jP0zXwvJHjAAAKPlxBeps944.png-wh_50








     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1908564,如需转载请自行联系原作者


相关文章
|
2月前
|
Perl
awk的复杂用法
awk的复杂用法
29 3
|
2月前
|
Perl
awk的具体用法
awk的具体用法
23 1
|
Shell Linux Perl
|
Shell Docker Perl