awk的简单示例
答案:2 悬赏:50 手机版
解决时间 2021-01-29 23:13
- 提问者网友:斑駁影
- 2021-01-29 06:08
awk的简单示例
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-01-29 07:29
简单例子我就举三个典型引用吧,
################
1.分列输出
一个test.txt文件内容如下:
aaa+bbb=ccc
iii-dddd*111=fff
ooo-xxx=orz
现在我们想要等号后的结果,则制定分隔符为“=”,输出以=为分隔符的第二列(默认分隔符为空格,但空格显然不适合本实例),我们这样写:
awk -F'=' '{print $2}' test.txt
输出结果:
ccc
fff
orz
################
2 用awk来计算统计
我们用这个例子吧,计算主机CPU使用率。
UNIX下主机CPU使用率可以用vmstat来获得,用usr+sys作为CPU总使用率(第14列+第15列),这一系列动作通过awk来取得当前CPU10次采样的平均使用率:
vmstat 1 11 >> vmstat.tmp #1秒取值一次取11次CPU内存情况,但需要排除vmstat第一行不准确结果
tail -10 vmstat.tmp | awk '{val=$14+$15;sum+=val;cnt+=1} END { printf("%4.2f",sum/cnt)}'
##########################
3. 用awk来匹配关键字
有个文件aaa.txt,内容如下:
11111 a 234567abc
22222 b ssdffggabc
33333 a 34545efg3e4r
4444 b abcffgggr
5555 a ddfreabc12343sdff
我们要找以空格为分隔符,第二列=a且第三列包含abc三个字的所有行:
awk '$2=="a" && $3~/abc/ {print $0 }' aaa.txt
结果:
11111 a 234567abc
5555 a ddfreabc12343sdff
awk还有相当多的作用,以上三个简单使用。需要继续努力多看别人代码多自己用。
################
1.分列输出
一个test.txt文件内容如下:
aaa+bbb=ccc
iii-dddd*111=fff
ooo-xxx=orz
现在我们想要等号后的结果,则制定分隔符为“=”,输出以=为分隔符的第二列(默认分隔符为空格,但空格显然不适合本实例),我们这样写:
awk -F'=' '{print $2}' test.txt
输出结果:
ccc
fff
orz
################
2 用awk来计算统计
我们用这个例子吧,计算主机CPU使用率。
UNIX下主机CPU使用率可以用vmstat来获得,用usr+sys作为CPU总使用率(第14列+第15列),这一系列动作通过awk来取得当前CPU10次采样的平均使用率:
vmstat 1 11 >> vmstat.tmp #1秒取值一次取11次CPU内存情况,但需要排除vmstat第一行不准确结果
tail -10 vmstat.tmp | awk '{val=$14+$15;sum+=val;cnt+=1} END { printf("%4.2f",sum/cnt)}'
##########################
3. 用awk来匹配关键字
有个文件aaa.txt,内容如下:
11111 a 234567abc
22222 b ssdffggabc
33333 a 34545efg3e4r
4444 b abcffgggr
5555 a ddfreabc12343sdff
我们要找以空格为分隔符,第二列=a且第三列包含abc三个字的所有行:
awk '$2=="a" && $3~/abc/ {print $0 }' aaa.txt
结果:
11111 a 234567abc
5555 a ddfreabc12343sdff
awk还有相当多的作用,以上三个简单使用。需要继续努力多看别人代码多自己用。
全部回答
- 1楼网友:北城痞子
- 2021-01-29 08:49
虽然我很聪明,但这么说真的难到我了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯