shell之awk 记录

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

cat xx.txt 
原始
master
1.8M

awk ‘{print "\""$0"\""}‘ xx.txt

"原始"
"master"
"1.8M"

或者

sed ‘s/^/\"/;s/$/\"/‘ xx.txt 
"原始"
"master"
"1.8M"

都可以实现

通过awk同时使用多个分隔符,然后通过正则匹配多个分隔符的方法来实现:

[[email protected] ~]# ifconfig eth0 |awk -F ‘[ :]+‘ ‘NR==2 {print $4}‘

10.0.0.185

我们来说明下这个简单易用的好办法:

提示:本题NR是行号,分隔符+号匹配,[]里一个或多个任意一个分隔符,这里就是匹配一个或多个冒号或空格。

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

2)NR==2和sed -n "2p",相当,意思都是选择第几行,例:

[[email protected] ~]# 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)掌握了理论要去实践验证才是科学严谨的学习态度,好,来几个例子实践说话吧。

[[email protected] ~]# echo ---1:----2|awk -F ‘[-:]+‘ ‘{print $2}‘

1

[[email protected] ~]# echo ---1:----2|awk -F ‘[-:]+‘ ‘{print $3}‘

2

[[email protected] ~]# 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


[[email protected]~]# 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:

时间: 2024-08-25 21:39:56

shell之awk 记录的相关文章

AWK文本处理增强shell功能--AWK完全手册

AWK是一种优良的文本处理工具.它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一. 本文主要摘录池中龙写的Unixawk使用手册(第二版),对其中内容稍微改动.感谢作者的分享. 目 录 1 0作者的话 2 1awk的调用方式 3 2awk的语法 4 3awk的记录.字段与内置变量 5 4awk的内置函数 5 5在命令行使用awk 6 6awk的变量 7 7运算与判断 7 8awk的流程控制 8 8.1BEGIN和END: 8 8.2流程控制语句 9 8.2.1if...e

Linux Shell学习--awk命令详解

(1).awk介绍 awk是由Alfred Aho .Peter Weinberger 和 Brian Kernighan于1977年开发的变成语言,awk是上述三位创建者姓的首字母. Awk的基本语法与c语言类似,如果对c语言很熟悉,那么学习awk编程也将事半功倍. Awk功能与sed相似,都是用来进行文本处理的,awk语言可以从文件或字符串中基于指定规则浏览和抽取信息,在抽取信息的基础上,才能进行其他文本操作.   awk是一款设计用于数据流的工具.它颇有玩头的原因就在于可以对列和行进行操作

shell历史命令记录功能

在Linux下可通过history命令查看用户所有的历史操作记录,同时shell命令操作记录默认保存在用户目录下的.bash-history文件中,通过这个文件可以查询shell命令的执行历史,有助于运维人员进行系统审计和问题排查,同事,在服务器遭受黑客攻击后,也可以通过这个命令或文件查询黑客登录服务器所执行的历史命令操作,但是有时候黑客在入侵服务器后为了毁灭痕迹,可能会删除.bash_history文件,这就需要合理保护或备份.bash_history文件 让history命令自动记录所有sh

AWK增强的文本处理shell特征--AWK完全手册

AWK这是一个很好的文字处理工具. 它不仅 Linux 中也是不论什么环境中现有的功能最强大的数据处理引擎之中的一个. 本文主要摘录池中龙写的Unixawk使用手冊(第二版),对当中内容略微修改.感谢作者的分享. 目 录 1 0作者的话 2 1awk的调用方式 3 2awk的语法 4 3awk的记录.字段与内置变量 5 4awk的内置函数 5 5在命令行使用awk 6 6awk的变量 7 7运算与推断 7 8awk的流程控制 8 8.1BEGIN和END: 8 8.2流程控制语句 9 8.2.1

Shell、Awk 中自动隐式类型转换的“坑”

1.问题: 在林林总总的编程语言里,弱类型的语言着实不少,一方面这种"动态类型"用起来很方便,而另一方面则"坑"你没商量~ 常见的 SQL.Shell.Awk 都会遇到各种暗藏的"隐式类型转换",下面就列举一些 shell.awk 里的自动隐式类型转换 case,防止掉坑. 注意 shell.awk 的变量为空 字符串.变量为空 未定义.初始值的隐式转换问题: # shell 下的字典排序比较 [email protected] 10:59:23

SHELL SED AWK 语法

原文地址:http://blog.chinaunix.net/uid-15811445-id-176318.html Shell shell 测试表达式 -a file 检查文件是否存在(与-e同) -b file 检查文件是否为特殊块设备 -c file 检查文件是否为特殊字符设备 -d fil 检查文件是否为目录 -e file 检查文件是否存在(与-a同) -g file 检查文件属性位set- group-id是否置1 -h file 检查文件是否为符号链接(与-L 同) -k file

shell中awk用法

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

shell编程awk基础介绍

awk介绍 报告生成器,格式化文本输出 处理机制类似sed命令,自带循环处理    读入一行处理一行然后自动读取下一行再进行处理 sed命令换行的标识是固定的,只能是回车换行.    awk里面的换行符是可以自定义的. awk自动把读入的行按照指定的切割符号切割成若干个字段   默认的切割符号是空白符号(包括连续的空白符号,tab键,回车换行符) 基础语法 awk  [options]   'program'  var=value    file awk  [options]  -f progr

shell工具-awk

awk 一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理. 基本用法 awk [选项参数] 'pattern1{action} pattern2{action}...' filename pattern:表示AWK在数据中查找的内容,就是匹配模式 action:在找到匹配内容时执行的一系列命令 选项参数说明 选项参数 功能描述 -F 指定输入文件拆分割符 -v 赋值一个用户定义变量 案例实操 数据准备 [root@slave2 testshell]