热线电话:13121318867

登录
2020-07-03 阅读量: 882
Shell常用工具之awk

awk

文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。

1. 基本用法

awk [选项参数] ‘pattern1{action1} pattern2{action2}...’ filename

pattern:表示AWK在数据中查找的内容,就是匹配模式

action:在找到匹配内容时所执行的一系列命令

2. 选项参数说明

选项参数

功能

-F

指定输入文件的分隔符

-v

赋值一个用户定义变量

案例实操

数据准备

[cda@hadoop102 datas]$ sudo cp /etc/passwd ./

搜索passwd文件以root关键字开头的所有行,并输出该行的第1列和第7列,中间以“,”号分割。

[cda@hadoop102 datas]$ awk -F: '/^root/{print $1","$7}' passwd

root,/bin/bash

注意:只有匹配了pattern的行才会执行action

只显示/etc/passwd的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell在最后一行添加"good,/bin/learn"。

[cda@hadoop102 datas]$ awk -F : 'BEGIN{print "user, shell"} {print $1","$7} END{print "good,/bin/learn"}' passwd

user, shell

root,/bin/bash

bin,/sbin/nologin

。。。

cda,/bin/bash

good,/bin/learn

注意:BEGIN 在所有数据读取行之前执行;END 在所有数据执行之后执行。

将passwd文件中的用户id(第三列)增加数值1并输出

[cda@hadoop102 datas]$ awk -v i=1 -F: '{print $3+i}' passwd

2

3

4

5


21.3457
5
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子