正则表达式之Awk
发布时间:2020-12-13 19:38:02 所属栏目:百科 来源:网络整理
导读: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个 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |