正则表达式-awk-用法详解
发布时间:2020-12-14 00:57:51 所属栏目:百科 来源:网络整理
导读:awk命令 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是
awk命令 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk做大的优势。 awk语法格式: 打印以冒号分隔的第1,2端 [root@test1test]#awk-F':''{print$1,$2}'passwd|head-2 rootx binx #-F指定分隔符(不加默认为空格分隔) 使用自定义字符连接每个段 [root@test1test]#awk-F':''OFS="#"{print$1,$2,$3}'passwd|head-2 root*x*0 bin*x*1 [root@test1test]#awk-F':''{print$1"*"$2"*"$3}'passwd|head-2 root*x*0 bin*x*1 匹配字符或字符串 [root@test1test]#awk'/root/'passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin 匹配字符或字符串并输出指定段 [root@test1test]#awk-F':''/root/{print$1,$5}'passwd rootroot operatoroperator 打印行号和列数 [root@test1~]#awk-F':''{printNR":"NF}'passwd 1:7 2:7 #awk内置变量NF(段数)NR(行数) 针对第一段打印匹配字符 [root@test1~]#awk-F':''$1~/oo/{print$1}'passwd root #~模糊匹配==精准匹配 打印匹配第一段匹配或者第三段匹配的整行内容,并且输出行号 [root@test1~]#awk-F':''$1~/oo/||$3>500{printNR":"$0}'passwd 1:root:x:0:0:root:/root:/bin/bas/mysqlh 23:izabbix:x:501:501::/home/zabbix:/sbin/nologin28374 #$0表示输出整行||或者&&并且><>=<=!=== [root@test1~]#awk-F':''NR<3&&$1=="root"{print$0}'passwd root:x:0:0:root:/root:/bin/bas/mysqlh 打印第7段的值为3+4并用#号连接 [root@test1~]#awk-F':''OFS="#",$7=$3+$4{print$0}'passwd root#x#0#0#root#/root#0 bin#x#1#1#bin#/bin#2 daemon#x#2#2#daemon#/sbin#4 打印第三列的累加值 [root@test1~]#awk-F':''{(sum=sum+$3)};END{printsum}'passwd 2046 awk中使用if关键词 [root@test1~]#awk-F':''{if($1=="root")print$0}'passwd root:x:0:0:root:/root:/bin/bas/mysqlh 以上为常见用法,详细解释及扩展用法参考: http://man.linuxde.net/awk (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |