linux awk命令(linux的awk用法)

Linux三剑客awk命令篇二:命令操作符

Linux三剑客awk命令篇二:命令操作符

关于awk的原理等基本知识请参考上篇:

Linux三剑客awk命令篇一:原理及基本命令

补充

1、语法格式:

(1) Awk完整语法

awk'BEGIN{commands} pattern{commands}END{commands}' file

BEGIN{commands}:处理数据前执行的命令。

END{commands}:处理完数据后执行的命令。

这两个命令可以省略。见(2)

(2) Awk基本语法

awk-F'分割符''/模式/{动作}' file

这里的'/模式/{动作}'类似于sed的命令格式。

模式:

(1)正则表达式(注意格式:/正则表达式/)

(2)条件表达式(例如:><等等)

总结:

这里的模式通俗来讲是用来找谁,而动作表示是干啥。

2、 awk的命令操作符

(1)正则表达式与bash一致

(2)+-*/%++--

(3)&&||!

(4)><>=<=!===~!~

~:表示匹配后面的模式,用于字段,见案例1。

其余的都比较常见就不举例了。

3、案例

案例1:

~使用案例

awk-F:'$3~/\<...\>/{print$1,$3}'/etc/passwd

解释:

模式:\<...\>

\< \>表示定界符,只匹配3个字符。

$3~:表示$3这个字段必须符合后面模式(\<...\>)的要求。

见如下输出结果,$3都是3个字符。

案例2:

%||==使用案例

seq 100| awk'$1% 7== 0||$1~/^99/{print$1}'

输出结果的要求:

整除7或者以99开头

案例3:

++使用

awk'BEGIN{num=0}{num++}END{print num}'/etc/passwd

简单解释:

BEGIN{num=0}:定义一个变量num

{num++}:这里没有模式,只有动作。

即每匹配到文件/etc/passwd的一行就执行num++

END{print num}:文件遍历结束,打印num的值,即文件的行数。

这里我们使用wc-l验证也是没问题的。

cat/etc/passwd| wc-l

上面3个案例简单的使用了awk的命令操作符。

虽然只是用到了几个简单的,但是其他同理,大家可以执行操作。

下一篇:

Linux三剑客awk命令篇二之内部变量

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

awk命令详解

除了使用sed命令,Linux系统中还有一个功能更加强大的文本数据处理工具,就是awk。它诞生于20世纪70年代末期,这也许是它影响了众多Linux用户的原因之一。和sed命令类似,awk命令也是逐行扫描文件(从第1行到最后一行),寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作;反之,则不对行做任何处理。awk命令的基本格式[root@localhost]#awk[选项]'脚本命令'文件名。awk的强大之处在于脚本命令,它由2部分组成,分别为匹配规则和执行命令。

awk的主要特性之一是其处理文本文件中数据的能力

它会自动给一行中的每个数据元素分配一个变量。

linux awk命令详解

awk命令是linux下的一个文件管理命令,通常是用于文本和数据进行处理的编程语言,awk命令主要有两个功能,具体介绍如下:

1、awk命令可以在linux/unix下对文本和数据进行处理;

2、awk命令支持用户自定义函数和动态正则表达式。

参考范例:

比如打印每一行的第二和第三个字段,具体命令为:

[root@linuxcool~]# awk'{ print$2,$3}' file

awk命令的具体语法格式为awk [参数] [文件]。

参数:

-F指定输入时用到的字段分隔符

-v自定义变量

-f从脚本中读取awk命令

-m对val值设置内在限制

阅读剩余
THE END