博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
awk一些简单的应用
阅读量:6256 次
发布时间:2019-06-22

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

hot3.png

filename文件内容为一下内容

[root@server1 ~]# cat filename

+ 0.1 4 0 cbr 1000 ------- 2 4.0 5.0 0 0
- 0.1 4 0 cbr 1000 ------- 2 4.0 5.0 0 0
+ 0.108 4 0 cbr 1000 ------- 2 4.0 5.0 1 1
- 0.108 4 0 cbr 1000 ------- 2 4.0 5.0 1 1
r 0.115333 4 0 cbr 1000 ------- 2 4.0 5.0 0 0
+ 0.115333 0 1 cbr 1000 ------- 2 4.0 5.0 0 0
- 0.115333 0 1 cbr 1000 ------- 2 4.0 5.0 0 0
+ 0.116 4 0 cbr 1000 ------- 2 4.0 5.0 2 2
- 0.116 4 0 cbr 1000 ------- 2 4.0 5.0 2 2
r 0.123333 4 0 cbr 1000 ------- 2 4.0 5.0 1 1
[root@server1 ~]# awk '/^(+|-)/' filename    #显示以+或者-号开头的行 [root@server1 ~]# awk '/^[+-]/' filename    这样也可以显示和前面一样的效果
+ 0.1 4 0 cbr 1000 ------- 2 4.0 5.0 0 0
- 0.1 4 0 cbr 1000 ------- 2 4.0 5.0 0 0
+ 0.108 4 0 cbr 1000 ------- 2 4.0 5.0 1 1
- 0.108 4 0 cbr 1000 ------- 2 4.0 5.0 1 1
+ 0.115333 0 1 cbr 1000 ------- 2 4.0 5.0 0 0
- 0.115333 0 1 cbr 1000 ------- 2 4.0 5.0 0 0
+ 0.116 4 0 cbr 1000 ------- 2 4.0 5.0 2 2
- 0.116 4 0 cbr 1000 ------- 2 4.0 5.0 2 2

[root@server1 ~]# awk '/0$/' filename #显示以0结尾的行# awk '$NF ~ /0/' filename效果和前面的一样

+ 0.1 4 0 cbr 1000 ------- 2 4.0 5.0 0 0
- 0.1 4 0 cbr 1000 ------- 2 4.0 5.0 0 0
r 0.115333 4 0 cbr 1000 ------- 2 4.0 5.0 0 0
+ 0.115333 0 1 cbr 1000 ------- 2 4.0 5.0 0 0
- 0.115333 0 1 cbr 1000 ------- 2 4.0 5.0 0 0

[root@server1 ~]# awk '$2 ~ /0.115333/' filename #显示第二条记录中含有0.115333的行
r 0.115333 4 0 cbr 1000 ------- 2 4.0 5.0 0 0
+ 0.115333 0 1 cbr 1000 ------- 2 4.0 5.0 0 0
- 0.115333 0 1 cbr 1000 ------- 2 4.0 5.0 0 0

[root@server1 ~]# awk 'BEGIN{OFS="%"}{print $1,$2}' filename # filename 通过设置输出分隔符(OFS="%")修改输出格式。

+%0.1
-%0.1
+%0.108
-%0.108
r%0.115333
+%0.115333
-%0.115333
+%0.116
-%0.116
r%0.123333

[root@server1 ~]# awk 'BEGIN {"date"|getline d; print d}' #通过管道把date的执行结果送给getline,并赋给变量d,然后打印。

Tue Dec 10 22:22:26 CST 2013

awk可以使用自身变量NR和FNR来处理多个文件。

NR:表示awk开始执行程序后所读取的数据行数。

FNR:awk当前读取的记录数,其变量值小于等于NR(比如当读取第二个文件时,FNR是从0开始重新计数,而NR不会)。

[root@server1 ceshi]# awk '{print NR $0}' file1 file2 #对于NR,读取不同文件,NR是一直++的。

1file1
2file1
3file1
4file1
5file1
6file2
7file2
8file2
9file2
10file2
11file2

[root@server1 ceshi]# awk '{print FNR $0}' file1 file2 #但是对于FNR,读取不同文件,开始下一个文件的时候FNR又从1开始了。

1file1
2file1
3file1
4file1
5file1
1file2
2file2
3file2
4file2
5file2
6file2

转载于:https://my.oschina.net/u/1176157/blog/183141

你可能感兴趣的文章
LAMP之Centos6.5安装配置Apache(二)
查看>>
Tomcat集群
查看>>
shell脚本中输出带颜色字体实例分享及chrony时间同步
查看>>
简单计时
查看>>
面试心得
查看>>
linux系统时间同步,硬件时钟和系统时间同步,时区的设置
查看>>
CentOS下载包格式说明
查看>>
VMware Vsphere 6.0安装配置 二安装vcenter server程序
查看>>
关于CISCO asa5510防火墙端口映射配置
查看>>
2012年6月美国最佳虚拟主机提供商TOP12性能评测
查看>>
monkey详细介绍之二
查看>>
两列布局之左边固定宽度,右边自适应(绝对定位实现方法)
查看>>
4,gps信号与地图匹配算法
查看>>
python print的用法
查看>>
之字形打印矩阵
查看>>
我的世界之电脑mod小乌龟 —— 方位上的操作 lua函数集
查看>>
游戏方案
查看>>
在 Linux 下搭建 Git 服务器
查看>>
StackExchange.Redis Client(转载)
查看>>
Leetcode题目:Bulls and Cows
查看>>