博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell之awk 记录
阅读量:7239 次
发布时间:2019-06-29

本文共 2451 字,大约阅读时间需要 8 分钟。

给下面的字符中加上""号

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是行号,分隔符+号匹配,[]里一个或多个任意一个分隔符,这里就是匹配一个或多个冒号或空格。


1awk -F 后面跟分隔符‘[空格:]+’,其中[空格:]多分隔符写法,意思是以空格或冒号做分隔,后面的"+"号是正则表达式,意思是匹配前面空格或冒号,两者之一的1个或1个以上。


2NR==2sed -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:请使用数组技术实现上述脚本(获取主从判断及错误号部分)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[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:

本文转自 a120518129 51CTO博客,原文链接:http://blog.51cto.com/silencezone/1874024,如需转载请自行联系原作者

你可能感兴趣的文章
python3科学计算开发相关配置
查看>>
体验javascript之美第五课 五分钟彻底明白 匿名函数自执行和闭包
查看>>
【JS实用技巧】优化动态创建元素的方式,让代码更加优雅且利于维护
查看>>
云原生时代下的12-Factor应用与实践
查看>>
每日7千次的跨部门任务调度,有赞怎么设计大数据开发平台?
查看>>
李倩:拖累开发团队效率的困局与破解之道
查看>>
初创企业的离岸敏捷
查看>>
Visual Studio 2017 15.7预览版发布
查看>>
小程序·云服务的系统架构和运维实现
查看>>
柔性自动化在物流的应用及探索
查看>>
关于要替代TensorFlow的JAX,你知道多少?
查看>>
ReactOS:基于Windows的开源操作系统
查看>>
js温故而知新3——学习廖雪峰的js教程
查看>>
Racket 6.7最新版本:提供对Android App的支持及改进的REPL等等
查看>>
法院判决:优步无罪,无人车安全员可能面临过失杀人控诉
查看>>
开源Pravega架构解析:如何通过分层解决流存储的三大挑战?
查看>>
Build 2018大会:.NET概述和路线图
查看>>
调研对敏捷宣言2.0的需求
查看>>
腾讯研发总监揭秘腾讯敏捷研发引擎之谜(上)
查看>>
Apache年度报告出炉,大数据项目依然最活跃
查看>>