正则表达式之Awk
发布时间:2020-05-22 16:58:31 所属栏目:程序设计 来源:互联网
导读:1.awk是一种编程语言,程序有一个主循环维持,主循环负责对文件的每行进行处理 基本概念: BEGIND:用于在主输入循环之前执行 主循环:对输入文件的行进行处理 END:循环执行后执行 记录:输入文件的每一行称为一个记录 域:记录中的每一个字符串称为一个域,
|
1.awk是一种编程语言,程序有一个主循环维持,主循环负责对文件的每行进行处理 基本概念: BEGIND:用于在主输入循环之前执行 主循环:对输入文件的行进行处理 END:循环执行后执行 记录:输入文件的每一行称为一个记录 域:记录中的每一个字符串称为一个域,域的分割符是空格键或tab键以及其它指定的键,默认是空格键,tab键看做是几个连续的空格键 $1:表示第一个域 $2:表示第二个域 $0:表示所有的域 用法一:模式匹配 awk'/模式/{动作}'文件 [root@zhu1 ~]# nl zhu.txt
1 ming yue ji shi you.
2 ba jiu wen qing tian
3 bu zhi tian shang gong que goad
4 #jin xi shi he nian root oo*
5 #an good man
[root@zhu1 ~]# awk '/^#/{print "ni hao awk"}' zhu.txt
ni hao awk
ni hao awk
用法二:默认与分割符是空格键 [root@zhu1 ~]# nl zhu.txt
1 ming yue ji shi you.
2 ba jiu wen qing tian
3 bu zhi tian shang gong que goad
4 #jin xi shi he nian root oo*
5 #an good man
[root@zhu1 ~]# awk '{print $1}' zhu.txt
ming
ba
bu
#jin
#an
-F:可以改变域分隔符 awk-F"分隔符"'{}'文件 [root@zhu1 ~]# awk '{print $1}' zhu.txt
ming
ba
bu
#jin
#an
[root@zhu1 ~]# awk -F "s" '{print $1}' zhu.txt
ming yue ji
ba jiu wen qing tian
bu zhi tian
#jin xi
#an good man
$后可以使用变量 [root@zhu1 ~]# awk '{print $3}' zhu.txt
ji
wen
tian
shi
man
[root@zhu1 ~]# awk 'BEGIN {m=1;n=2} {print $(m+n)}' zhu.txt
ji
wen
tian
shi
man
awk关系运算符及其意义 <:小于 >:大于 <=:小于等于 >=:大于等于 ==:等于 !=:不等于 ~:匹配正则表达式 !~:不匹配正则表达式 利用awk取出ip地址 [root@zhu1 ~]# ifconfig eth0 | grep 'inet addr'|awk -F : '{print $2}'| awk '{print $1}'
192.168.1.107
结合正则表达式的用法 [root@zhu1 ~]# ifconfig eth0 | grep 'inet addr' | awk -F [:" "]+ '{print $4}'
192.168.1.107
第二种用法: [root@zhu3 ~]# ifconfig eth0 | awk -F [:" "]+ 'NR==2 {print $4}'
192.168.70.133
[root@zhu3 ~]# ifconfig eth0 | awk -F '[ :]+' 'NR==2 {print $4}'
192.168.70.133
[:""]:表示以:或空格作为分隔符,+表示前面冒号或空格的0个或1个 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
