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值设置内在限制