0
点赞
收藏
分享

微信扫一扫

46、shell脚本详解(九)-----awk文本和数据处理编程语言

color_小浣熊 2022-03-11 阅读 95

一、awk命令 ----- 文本和数据进行处理的编程语言

  • awk命令是一种编程语言,用于在linux/unix下对文本和数据进行处理。
  • 而且它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具

1、工作原理
逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。

​ sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个“字段”然后再进行处理。awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。在使用awk命令的过程中,可以使用逻辑操作符“&&”表示“与”、“||”表示“或”、“!”表示“非”;还可以进行简单的数学运算,如+、-、*、/、%、^分别表示加、减、乘、除、取余和乘方。


2、命令格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y67Kra3M-1646408751116)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644995975438.png)]

3、awk常见的内建变量(可直接使用)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jj4gXsLW-1646408751118)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644996100983.png)]

\t 制表符 相当于tab键

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TQm5dMx4-1646408751118)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645018415952.png)]

4、按行输出文本**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sy2nfGaN-1646408751119)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644996333951.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TnHO3w6T-1646408751119)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644997340097.png)]

​ BEGIN模式表示,在处理指定的文本之前,需要先执行BEGIN模式中指定的动作;awk再处理指定的文本,之后再执行END模式中指定的动作,END{}语句块中,往往会放入打印结果等语句。

5、按字段输出文本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IckoR0Jf-1646408751120)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644998110575.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NHBRb0ig-1646408751120)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644998176430.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGKvYGpe-1646408751121)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644998688367.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SJc0161P-1646408751121)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644998993737.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BBvMLijw-1646408751122)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644999438959.png)]

6、通过管道、双引号调用shell 命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iX8pWoQm-1646408751122)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1644999737218.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eOOGqBL4-1646408751122)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645000520391.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8e5UICLW-1646408751123)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645003127410.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P8rG6Ufz-1646408751123)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645003600044.png)]

7、getline

​ (1) 当getline左右无重定向符“<”或“|”时,getline作用于当前文件,读入当前文件的第一行给其后跟的变量var或$0;应该注意到,由于awk在处理getline之前已经读入了一行,所以getline得到的返回结果是隔行的。
​ (2)当getline左右有重定向符“<”或“|”时,getline则作用于定向输入文件,由于该文件是刚打开,并没有被awk读入一行,只是getline读入,那么getline返回的是该文件的第一行,而不是隔行。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LHiKRKPG-1646408751124)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645004008225.png)]

8、FS、OFS、NR、FNR 、RS、ORS

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1So57qar-1646408751124)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645020870958.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7JiDGVXv-1646408751124)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645020930020.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NoOC22fo-1646408751124)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645021030882.png)]

9、简单例题

提取本机IP地址,并进行二进制的转化输出

方法一:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nCP4zKCE-1646408751125)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645004135050.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nB6YxyhC-1646408751125)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645014265430.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pwTtawm8-1646408751125)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645014292038.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YVZYbAF9-1646408751126)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645014309417.png)]

方法二:(函数加可交互版)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ma88cz9B-1646408751126)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645016964834.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CMrkWHy1-1646408751126)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645016977927.png)]

10、补充练习:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QX7QBHwT-1646408751127)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645018883446.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MFRgrWiE-1646408751127)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645018979237.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FZygQcnq-1646408751127)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645019494328.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EeLArydV-1646408751128)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645019556802.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-33ubvFQi-1646408751128)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645020516430.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ccd7Y3NL-1646408751128)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645019032146.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QL6cJlqr-1646408751128)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645019082387.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6K1GXzdb-1646408751129)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645019107646.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gvDXYYh4-1646408751129)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645019139812.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MOhxWyLx-1646408751129)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645019161739.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xe9Ss8f8-1646408751130)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645019188946.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YnEW24o5-1646408751130)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645019333926.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FCrurwfY-1646408751130)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645019358412.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EWzmMFbI-1646408751131)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645020401836.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XaeluMlb-1646408751131)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645020417598.png)]

11、awk高级用法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O71ekjjc-1646408751131)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645021203999.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CQyNV5jR-1646408751132)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645021263750.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sdaxPkCG-1646408751132)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645021370301.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pAvEubTL-1646408751132)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645021426797.png)]

注意转义符号 \sda3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tykmwcHp-1646408751132)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645022045586.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LUufpnfg-1646408751133)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645022468780.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wfoqoykq-1646408751133)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645023086575.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-COUQPK6r-1646408751134)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645023861460.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7nOVT9eI-1646408751134)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645024123850.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cnfsSWAl-1646408751135)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645024726695.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E0D1oEUP-1646408751136)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645024741885.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bJGdjwLY-1646408751136)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645025032971.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cTHsL7Va-1646408751137)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645025188278.png)]

12、seq命令复习

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U91iefNP-1646408751137)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645025350439.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y35lp3aO-1646408751137)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645025371763.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bnjL49vT-1646408751138)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645025439361.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DBcXWriQ-1646408751138)(C:\Users\XTC\AppData\Roaming\Typora\typora-user-images\1645025577796.png)]

外链图片转存中…(img-U91iefNP-1646408751137)]

[外链图片转存中…(img-Y35lp3aO-1646408751137)]

[外链图片转存中…(img-bnjL49vT-1646408751138)]

[外链图片转存中…(img-DBcXWriQ-1646408751138)]

举报

相关推荐

0 条评论