设为首页 收藏本站
查看: 1255|回复: 0

shell之awk 记录

[复制链接]

尚未签到

发表于 2018-8-23 10:32:11 | 显示全部楼层 |阅读模式
  给下面的字符中加上""号
  cat xx.txt
  原始
  master
  1.8M
  awk '{print "\""$0"\""}' xx.txt
  "原始"
  "master"
  "1.8M"
  或者
  sed 's/^/\"/;s/$/\"/' xx.txt
  "原始"
  "master"
  "1.8M"
  都可以实现
  通过awk同时使用多个分隔符,然后通过正则匹配多个分隔符的方法来实现:
  [root@oldboy ~]# ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $4}'
  10.0.0.185
  我们来说明下这个简单易用的好办法:
  提示:本题NR是行号,分隔符+号匹配,[]里一个或多个任意一个分隔符,这里就是匹配一个或多个冒号或空格。
  1)awk -F 后面跟分隔符‘[空格:]+’,其中[空格:]多分隔符写法,意思是以空格或冒号做分隔,后面的"+"号是正则表达式,意思是匹配前面空格或冒号,两者之一的1个或1个以上。
  2)NR==2和sed -n "2p",相当,意思都是选择第几行,例:
  [root@oldboy ~]# ifconfig eth0|awk NR==2
  inet addr:10.0.0.185  Bcast:10.0.0.255  Mask:255.255.255.0
  3)指定awk -F '[ :]+'分隔符后,不同字符串被分隔的列依次为:
  inet
  addr
  10.0.0.185
  Bcast:10.0.0.255  Mask:255.255.255.0
  第一列
  第二列
  第三列
  第四列
  后面忽略不计。
  4)整个答案awk部分意思是,通过NR==2取出第二行,然后,通过-F '[-:]+多分隔符正则匹配,然后通过{print $4}打印出第四列 !谢谢杨瑞同学的答案啊, 懒得写了,所以让你总结下。嘿嘿,看到后别怪老师啊。
  5)掌握了理论要去实践验证才是科学严谨的学习态度,好,来几个例子实践说话吧。
  [root@oldboy ~]# echo ---1:----2|awk -F '[-:]+' '{print $2}'
  1
  [root@oldboy ~]# echo ---1:----2|awk -F '[-:]+' '{print $3}'
  2
  [root@oldboy ~]# echo ---1:::::2|awk -F '[-:]+' '{print $3}'
  2
  生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员。提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:
  阶段1:开发一个守护进程脚本每30秒实现检测一次。
  阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误。
  阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分)
12345678910111213141516171819202122232425262728293031323334353637383940[root@oldboy~]# mysql -uroot -p'oldboy' -S /data/3307/mysql.sock -e "show slavestatus\G;"*************************** 1. row ***************************               Slave_IO_State:Waiting for master to send event                  Master_Host:10.0.0.179   #当前的mysql master服务器主机                  Master_User: rep                  Master_Port: 3306                Connect_Retry: 60              Master_Log_File:mysql-bin.000013         Read_Master_Log_Pos: 502547               Relay_Log_File:relay-bin.000013                Relay_Log_Pos:251        Relay_Master_Log_File:mysql-bin.000013             Slave_IO_Running:Yes           Slave_SQL_Running: Yes              Replicate_Do_DB:          Replicate_Ignore_DB: mysql          Replicate_Do_Table:       Replicate_Ignore_Table:      Replicate_Wild_Do_Table:  Replicate_Wild_Ignore_Table:                    Last_Errno: 0                   Last_Error:                  Skip_Counter: 0         Exec_Master_Log_Pos: 502547              Relay_Log_Space:502986              Until_Condition:None               Until_Log_File:                 Until_Log_Pos: 0          Master_SSL_Allowed: No          Master_SSL_CA_File:           Master_SSL_CA_Path:               Master_SSL_Cert:            Master_SSL_Cipher:                Master_SSL_Key:        Seconds_Behind_Master: 0   #和主库比同步延迟的秒数,这个参数很重要Master_SSL_Verify_Server_Cert: No                Last_IO_Errno: 0                Last_IO_Error:                Last_SQL_Errno: 0                 Last_SQL_Error:


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-555446-1-1.html 上篇帖子: shell build-in 下篇帖子: Linux Shell 编程1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表