Shell 文本分析 awk简介
awk命令是强大的文本分析工具,还具有强大统计功能。
这里做最简要的介绍。
1 语法
awk '条件1 {动作 1} 条件 2 {动作 2} …条件n{动作n}' 文件名
1)首先对文件进行分行分段处理
2)对分行分段后的数据进行条件判断与动作处理:
如果是begin条件,其它动作开始之前执行1次;
如果是end条件,其它动作结束之后执行1次;
其它条件,每1行会执行1次。
条件类型
主要包括3种:begin、end、无名。
分段变量
$1表示该行的第1列,$2表示该行的第2列,以此类推。$0表示整个行。
2 示例
例1:针对用户密码表,通过awk进行遍历,
文件user_pwd.txt
user1 111111
user2 222222
user3 333333
user4 444444
user5 555555
user6 666666
代码
awk '{print "name:"$1",password:"$2} ' user_pwd.txt
输出需通过awk的内部函数print
字符串连接:常量用双引号,变量直接写。
例2:针对用户密码表,通过awk进行遍历,并统计用户个数,
代码
awk 'BEGIN{print "begin";count=0;}{print "name:$1,password:$2";let count++}END{print count;print "end"}' user_pwd.txt
一行代码里面内容有点多。
例3:字符串截取
echo "12345678" | awk '{print substr($1,2,4)}'
awk支持管道;
awk内置函数substr用于截取字符串,参数说明:
第1个参数表示字符串;
第2个参数表示开始位置;
第3个参数表示截取长度。