首页
About Me
推荐
weibo
github
Search
1
linuxea:gitlab-ci之docker镜像质量品质报告
49,197 阅读
2
linuxea:如何复现查看docker run参数命令
21,469 阅读
3
Graylog收集文件日志实例
18,257 阅读
4
git+jenkins发布和回滚示例
17,882 阅读
5
linuxea:jenkins+pipeline+gitlab+ansible快速安装配置(1)
17,778 阅读
ops
Openvpn
Sys Basics
rsync
Mail
NFS
Other
Network
HeartBeat
server 08
Code
Awk
Shell
Python
Golang
virtualization
KVM
Docker
openstack
Xen
kubernetes
kubernetes-cni
Service Mesh
Data
Mariadb
PostgreSQL
MongoDB
Redis
MQ
Ceph
TimescaleDB
kafka
surveillance system
zabbix
ELK Stack
Open-Falcon
Prometheus
victoriaMetrics
Web
apache
Tomcat
Nginx
自动化
Puppet
Ansible
saltstack
Proxy
HAproxy
Lvs
varnish
更多
互联咨询
最后的净土
软件交付
持续集成
gitops
devops
登录
Search
标签搜索
kubernetes
docker
zabbix
Golang
mariadb
持续集成工具
白话容器
linux基础
nginx
elk
dockerfile
Gitlab-ci/cd
最后的净土
基础命令
jenkins
docker-compose
gitops
haproxy
saltstack
Istio
marksugar
累计撰写
676
篇文章
累计收到
140
条评论
首页
栏目
ops
Openvpn
Sys Basics
rsync
Mail
NFS
Other
Network
HeartBeat
server 08
Code
Awk
Shell
Python
Golang
virtualization
KVM
Docker
openstack
Xen
kubernetes
kubernetes-cni
Service Mesh
Data
Mariadb
PostgreSQL
MongoDB
Redis
MQ
Ceph
TimescaleDB
kafka
surveillance system
zabbix
ELK Stack
Open-Falcon
Prometheus
victoriaMetrics
Web
apache
Tomcat
Nginx
自动化
Puppet
Ansible
saltstack
Proxy
HAproxy
Lvs
varnish
更多
互联咨询
最后的净土
软件交付
持续集成
gitops
devops
页面
About Me
推荐
weibo
github
搜索到
2
篇与
的结果
2016-10-07
Linux中Awk常用文本处理[2]
NR,FNR记录当前行[root@LinuxEA awk]# cat nr1 1 a 2 b 3 c 4 d 5 e[root@LinuxEA awk]# awk '{print FNR}' nr1 1 2 3 4 5 6 [root@LinuxEA awk]# awk '{print NR}' nr1 1 2 3 4 5 6[root@LinuxEA awk]# awk '{print "行. = " NR " 数据 = " RNR,$0}' nr1 行. = 1 数据 = 1 a 行. = 2 数据 = 2 b 行. = 3 数据 = 3 c 行. = 4 数据 = 4 d 行. = 5 数据 = 5 e 行. = 6 数据 = [root@LinuxEA awk]# AWK引入变量:[root@LinuxEA awk]# VAR=linuxea [root@LinuxEA awk]# awk -v var=$VAR 'BEGIN{print var}' linuxea [root@LinuxEA awk]# awk 'BEGIN{print "'$VAR'"}' linuxea [root@LinuxEA awk]# OFS输出字段分隔符[root@LinuxEA awk]# echo 'linuxea.com linuxea.com linuxea.com' |awk -v OFS="---" '{$1=$1;print $0}' linuxea.com---linuxea.com---linuxea.com [root@LinuxEA awk]# [root@LinuxEA awk]# echo 'linuxea.com linuxea.com linuxea.com' |awk -v OFS="---" '{NF++0;print $0}' linuxea.com---linuxea.com---linuxea.com--- [root@LinuxEA awk]# echo 'linuxea.com linuxea.com linuxea.com' |awk -v OFS="---" '{NF+=0;print $0}' linuxea.com---linuxea.com---linuxea.com [root@LinuxEA awk]# awk实现点分十进制的ip地址转换数字格式[root@LinuxEA awk]# echo 8.8.8.8 |awk -F. '{n=0;for(i=1;i<=NF;i++){n*=256;n+=$i}print n}' 134744072 [root@LinuxEA awk]# [root@LinuxEA awk]# echo 8.8.8.8|awk -F. '{printf "%d\n", ($1*(2^24))+($2*(2^16))+($3*(2^8))+$4}' 134744072 [root@LinuxEA awk]# [root@LinuxEA awk]# ping 134744072 PING 134744072 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=44 time=66.3 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=44 time=76.9 ms[root@LinuxEA awk]# echo 00001000.00001000.00001000.00001000|awk -F. 'function bin2dec(a,b,i,c){b=length(a);c=0;for(i=1;i<=b;i++){c+=c;if(substr(a,i,1)=="1")c++}return c}{for(j=1;j<=NF;j++)printf("%d%s",bin2dec($j),j!=NF?".":"\n")}' 8.8.8.8 [root@LinuxEA awk]# 选择性打印取其前一行源文件:[root@LinuxEA awk]# cat nr1 1 a 2 b 3 c 4 d 5 e当pattern等于5时,打印前一行[root@LinuxEA awk]# awk '!/5/{a=$0}/5/{print a}' nr1 4 d [root@LinuxEA awk]# awk '/5/{print i};i=$0{}' 4 d如果取前2行则借助一下属组,以前两行为例[root@LinuxEA awk]# awk '{a[NR]=$0}/5/{p=NR}END{for(i=p-2;i<p;i++)print a[i] RS}' nr1 3 c 4 d如果取其后两行已知从3行开始,从3到5行内容[root@LinuxEA awk]# awk '/3/{p=1;a=NR}p&&NR-x<=5&&NR-x>0' nr1 3 c 4 d 5 e [root@LinuxEA awk]# 取出现匹配次数源数据:[root@LinuxEA awk]# cat nr1 1 a 2 b 3 c 2 b 4 d 5 e 6 f 7 g [root@LinuxEA awk]# 出现第一次匹配取后一行[root@LinuxEA awk]# awk '/2 b/{a++;b=NR}a==1&&NRb<=1 && NR-x>0' nr1 2 b 3 c出现第二次匹配,打印下面的行[root@LinuxEA awk]# awk '/2 b/{a++;b=NR}a==2&&NRb<=2 && NR-b>0' nr1 4 d 5 e 6 f 7 g [root@LinuxEA awk]# 匹配中间数据取出1 a 到4 d中间的数据包括匹配行[root@LinuxEA awk]# awk '/1 a/{p=1}/4 d/{print;p=0}p' nr1 1 a 2 b 3 c 2 b 4 d [root@LinuxEA awk]# 不包括1 a行[root@LinuxEA awk]# awk '/1 a/{p=1;next}/4 d/{print;p=0}p' nr1 2 b 3 c 2 b 4 d [root@LinuxEA awk]# 不包括4 d行[root@LinuxEA awk]# awk '/1 a/{p=1}/4 d/{p=0}p' nr1 1 a 2 b 3 c 2 b [root@LinuxEA awk]# 不打印匹配行[root@LinuxEA awk]# awk '/1 a/{p=1;next}/4 d/{p=0}p' nr1 2 b 3 c 2 b [root@LinuxEA awk]# 过滤关键字中间的行保留123(linuxea)和xaca(linuxea)中含有关键字的数据实例文件[root@LinuxEA awk]# cat file289 aaa bbb ccs ddw weq 123(linuxea) szxc sdaq AZCA SDQWQ XXCA ASDQ XACA(linuxea) BBB [root@LinuxEA awk]# 保留123(linuxea)和xaca(linuxea)中含有关键字的数据第一种方式:将标签P作为数据下表,将123到结尾数据存入数组中,最后打印匹配linuxea值[root@LinuxEA awk]# awk '/123/{p++}/./{a[p]=a[p]"\n"$0}END{for(i=1;i<=p;i++) if(a[i]~/\(linuxea\)/) print a[i]}' file289 123(linuxea) szxc sdaq AZCA SDQWQ XXCA ASDQ XACA(linuxea) BBB [root@LinuxEA awk]# 第二种方式:利用awk内置函数RS[root@LinuxEA awk]# awk -v RS="123" '/linuxea/{print RS $0}' file289 123(linuxea) szxc sdaq AZCA SDQWQ XXCA ASDQ XACA(linuxea) BBB [root@LinuxEA awk]# 统计关键字的行[root@LinuxEA awk]# cat file299 head no 1235 linuxea mark 1 @09 linuxea.com 1235 mark head no 1234 mark linuxea.com 1235 mark 1235 mark linuxea.com head no 1235 mark linuxea.com 1235 mark 1235 mark linuxea.com 1235 mark linuxea.com统计linuxea.com的行数[root@LinuxEA awk]# awk '/no/{p++;b[p]=$0}/linuxea.com/{a[p]++}END{for(i=1;i<=p;i++) print b[i],a[i]}' file299 head no 1 head no 2 head no 3 [root@LinuxEA awk]# 打印奇数偶数行数[root@LinuxEA awk]# cat file2991 1 2 3 4 5 6 7 8 9 10[root@LinuxEA awk]# awk p++%2 file2991 2 4 6 8 10 [root@LinuxEA awk]# awk ++p%2 file2991 1 3 5 7 9 打印匹配关键字的行号linuxea.com[root@LinuxEA awk]# cat 1006 123 abc aaaa vwd vvvvvv deafwq linuxea.com dddddddddd aaaaaaa打印关键字vwd后出现的第一个linuxea.com所处行的行号[root@LinuxEA awk]# awk '/linuxea.com/{p=NR}/vwd/{x=NR}p>x&&x>0{print p;exit}' 1006 7 [root@LinuxEA awk]# 取其关键字后N行[root@LinuxEA awk]# awk '/vwd/{i=3;next}--i>=0' 1006 vvvvvv deafwq linuxea.com [root@LinuxEA awk]# 取其关键字前三行[root@LinuxEA awk]# awk '/\<vwd\>/{for(i=NR-3;i<NR;i++)print a[i%3];exit}{a[NR%3]=$0}' 1006 123 abc aaaa [root@LinuxEA awk]# awk '{a[NR]=$0}/\<vwd\>/{for(i=NR-3;i<NR;i++)print a[i]}' 1006 123 abc aaaa [root@LinuxEA awk]# awk '{a[NR]=$0}/vwd/{p=NR}END{for(i=p-3;i<p;i++) printf a[i] RS}' 1006 123 abc aaaa [root@LinuxEA awk]# awk '{a[NR]=$0}/vwd/{for(i=NR-3;i<NR;i++)print a[i]}' 1006 123 abc aaaa [root@LinuxEA awk]#
2016年10月07日
3,915 阅读
0 评论
0 点赞
2016-09-25
Awk简单过滤[1]
示例:简单的记录了awk条件过滤和赋值变量来进行判断的过滤实例[root@LinuxEA awk]# cat test1 3 aa bb 4 ss gg 1 ssyyu 6 ddf 8 ff hh 7 aa bb 9 fff [root@LinuxEA awk]# 如上所示,现在需要拿出以aa bb的行,也就是3和7(test1的中间空白为tab)1,直接过滤版权属于:www.linuxea.com原文链接:http://www.linuxea.com/1441.html转载时须注明出处及本声明直接过滤aa bb而后打印[root@LinuxEA awk]# awk '/aa bb/ {print $1}' test1 3 7 2,赋值判断[root@LinuxEA awk]# var1="aa bb" [root@LinuxEA awk]# awk -F\\t -v val="$var1" '{if($2==val)print $1}' test1 3 7 首先赋值var1变量,而后将var1赋给val,在判断$2是否等于val(也就是var1),如果等于就打印出结果这里的$var1是需要双引号引起来的版权属于:www.linuxea.com原文链接:http://www.linuxea.com/1441.html转载时须注明出处及本声明
2016年09月25日
3,208 阅读
0 评论
0 点赞