码迷,mamicode.com
首页 > 其他好文 > 详细

细说awk

时间:2018-03-19 10:25:54      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:awk

细说awk

awk是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生成报表等。

awk的基本语法:

awk option ‘pattern {action}’ file

awk选项

-f program-file    //从文件中读取awk程序源文件
-F fs                   //指定fs为输入字段分隔符
-v var=value      //变量赋值
--posix              //兼容POSIX正则表达式
--dump-variables=[file]    //把awk命令时的全局变量写入文件,默认文件是awkvars.out
--profile=[file]     //格式化awk语句到文件,默认是awkprof.out

awk模式

BENG{}              //给程序赋予初始状态,先执行的工作
END{}                //程序结束之后执行的一些结尾工作
/reqular expression/     //为每个输入记录匹配正则表达式
pattern && pattern       //逻辑and,满足两个模式
pattern || pattern          //逻辑or,满足其中一个模式
! pattern                      //逻辑not,不满足模式
pattern1,pattern2     //连续范围匹配

示例:
1)从文件读取awk程序处理文件

echo ‘{print $1}‘ > test.awk
tail -3 /etc/services |awk -f test.awk  //以下是过渡出的内容
iqobject
iqobject
matahari

2)指定输入分隔符,指定多个分隔符

tail -2 /etc/passwd|awk ‘BEGIN{FS=":"}{print $1}‘
tail -2 /etc/passwd|awk -F: -f test.awk
a="ass;gg#sow;p#slolow;wpw#pp"
echo $a|awk -F‘[;#]+‘ ‘{print $3}‘   //以下是显示的内容
sow

3)变量赋值

awk -v a=$a ‘BEGIN{print a}‘  //引用系统变量
ass;gg#sow;p#slolow;wpw#pp

awk ‘BEGIN{print ‘$a‘}‘   //会报语法错误,是因为变量里含有特殊符号 

技术分享图片

a=123
awk ‘BEGIN{print ‘$a‘}‘
123
awk -v a=linux ‘BEGIN{print a}‘
linux

细说awk

标签:awk

原文地址:http://blog.51cto.com/13480443/2088360

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!