首页 / LINUX / 【Linux】awk指令
【Linux】awk指令
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Linux】awk指令,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2577字,纯文字阅读大概需要4分钟。
内容图文
介绍:
awk是一种可以处理数据,产生格式化报表的语言。其工作方式是读取数据文件,将每一行数据视为一条记录,没笔记录按分隔符(默认空格)分割成若干字段,输出各字段的值。
实例:
[jboss@vm-kvm11902-app ~]$ cat test.txt eth0 Link encap:Ethernet HWaddr 00:1A:4A:68:11:23 inet addr:10.221.4.166 Bcast:10.221.4.255 Mask:255.255.255.0 inet6 addr: fe80::21a:4aff:fe68:1123/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:255862464 errors:0 dropped:0 overruns:0 frame:0 TX packets:277983408 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:66805026750 (62.2 GiB) TX bytes:37979102088 (35.3 GiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:12789957 errors:0 dropped:0 overruns:0 frame:0 TX packets:12789957 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:706680171 (673.9 MiB) TX bytes:706680171 (673.9 MiB)
用法1:
显示指定文件中包含指定字符串的数据行
awk ‘/inet/‘ test.txt #查找test.txt中包含inet的数据行
[jboss@vm-kvm11902-app ~]$ awk ‘/inet/‘ test.txt inet addr:10.221.4.166 Bcast:10.221.4.255 Mask:255.255.255.0 inet6 addr: fe80::21a:4aff:fe68:1123/64 Scope:Link inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host
用法2:
显示指定文件每行指定字段
awk ‘{print $1, $2}‘ test.txt #显示test.txt文件中每行第一、二字段
[jboss@vm-kvm11902-app ~]$ awk ‘{print $1, $2}‘ test.txt eth0 Link inet addr:10.221.4.166 inet6 addr: UP BROADCAST RX packets:255862464 TX packets:277983408 collisions:0 txqueuelen:1000 RX bytes:66805026750 lo Link inet addr:127.0.0.1 inet6 addr: UP LOOPBACK RX packets:12789957 TX packets:12789957 collisions:0 txqueuelen:0 RX bytes:706680171
用法3:
用法1+用法2
awk ‘/inet/{print $1, $2}‘ test.txt #显示test.txt文件中包含inet数据行的第一、二个字段
[jboss@vm-kvm11902-app ~]$ awk ‘/inet/{print $1, $2}‘ test.txt inet addr:10.221.4.166 inet6 addr: inet addr:127.0.0.1 inet6 addr:
用法4:
使用-F指定新的分隔符
awk -F: ‘/inet/{print $1, $2}‘ test.txt #显示test.txt文件中,包含inet的数据行,按照“:”进行分割的第一、二个字段
[jboss@vm-kvm11902-app ~]$ awk -F: ‘/inet/{print $1, $2}‘ test.txt inet addr 10.221.4.166 Bcast inet6 addr fe80 inet addr 127.0.0.1 Mask inet6 addr
用法5:
使用BEGIN{OFS="***"}重新定义分隔符
awk -F: ‘BEGIN{OFS="***"}/inet/{print $1, $2}‘ test.txt #显示test.txt文件中,包含inet的数据行,按照“:”进行分割的第一、二个字段后按照分隔符“***”重新进行拼接的记录
[jboss@vm-kvm11902-app ~]$ awk -F: ‘BEGIN{OFS="***"}/inet/{print $1, $2}‘ test.txt inet addr***10.221.4.166 Bcast inet6 addr*** fe80 inet addr***127.0.0.1 Mask inet6 addr***
举个栗子
[jboss@vm-kvm11902-app ~]$ ifconfig | grep ‘inet addr‘ | grep Bcast | awk ‘{print $2}‘ | awk -F: ‘{print $2}‘ 10.221.4.166
原文:https://www.cnblogs.com/f0t1/p/10641301.html
内容总结
以上是互联网集市为您收集整理的【Linux】awk指令全部内容,希望文章能够帮你解决【Linux】awk指令所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。