java中的接口是类吗
499
2022-11-01
Linux三剑客awk模式匹配
文章目录
正则匹配范围匹配特殊模式BEGIN{}和END{}
正则匹配
//支持扩展正则awk可以精确到某一列,某一列中包含/不包含…内容~包含,!~不包含
正则 | awk正则 | 写法 |
^表示以…开头的行 | 某一列的开头 | $3~/^oldboy/ |
$表示以…结尾的行 | 某一列的结尾 | $4~/lidao$/ |
^$表示空行 | 某一列是空的 (少用) | ^$ |
第三列以1开头的
awk -F: '$3~/^1/'
第三列以2开头的,并打印1、3和最后一列
awk -F: '$3~/^2/{print $1, $3, $NF}'
第三列以1或2开头的,并打印1、3和最后一列
awk -F: '$3~/^[12]/{print $1, $3, $NF}' /etc/passwd | column
范围匹配
写法 | 含义 |
/sss/,/eee/ | 从sss开始,到eee结束(多用) |
NR==1,NR==5 | 从第一行开始到第5行结束,类似于 |
找出日志access.log中从11:02:00到11:02:30的ip地址、用户访问的URI、状态码、数据包大小
awk '/11:02:00/,/11:02:30/{print $1,$7,$9,$10}'
特殊模式BEGIN{}和END{}
模式 | 含义 | 应用场景 |
BEGIN{} | 里面的语句会在awk读取文件前执行 | 1)进行简单统计计算,不涉及读取文件(常见) 2)处理文件前,添加表头(少用) 3)用来定义awk变量(少用),因为可以用-v |
END{} | 里面的语句会在awk读取文件后执行 | 1)awk进行统计,一般过程:先进行计算,最后END里面输出结果(常见) 2)awk使用数组,用于输出数组结果(常见) |
END{}统计方法
统计方法 | 简写形式 | 功能 |
i=i+1 | i++ | 计数,统计次数 |
sum=sum+??? | sum += ??? | 求和 |
awk 'BEGIN{i=0}/^$/{i++}END{print i}'
使用awk求和
seq 100 | awk 'BEGIN{sum=0}{sum += $1}END{print sum}'seq 100 | awk 'BEGIN{sum=0}{sum+=$1; print sum;}END{print sum}' # 写语句时可以用分号隔开
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~