友情提示:本站最近进行了改版升级,如出现显示异常,请刷新页面或清除一下缓存!

  本篇接《awk命令语法详解及示例(上)》继续以实例讲解awk命令语法,仍然使用前文中使用的v14和v15两个文件。

  awk的语法结构如下:

awk [ -F Ere ] [ -v Assignment ] ... { -f ProgramFile | 'Program' } [ [ File ... | Assignment ... ] ] ...
  其中,"[]"中的内容为可选项,"..."为可重复,"{}"中为awk程序指令,"Ere"为扩展的正则表达式,"File"为需要处理的输入文件,"Assignment"为表达式赋值语句。

5、查看任意指定时段的访问者信息

CodingAnts@ubuntu:~/awk$ awk -F : -v min=18 -v max=30 '$2 >= min && $2 < max {print $0}' v14
shanghai	123.126.50.*	14:18:23	www.google.com.hk
使用的语法:awk [-F Ere] [ -v Assignment ] ... 'Program' File

6、awk程序指令位于单独文件

/guangdong/ {a++; print a ":" $0}

  用vi等文本编辑器,新建一个shou.awk的文件,输入上面的内容后保存。准备好后执行下面的指令:

CodingAnts@ubuntu:~/awk$ awk -v a=0 -f show.awk v14 v15
1:guangdong	113.65.141.*	14:35:27	www.baidu.com
2:guangdong	121.8.171.*	15:18:23	www.google.com.hk
3:guangdong	183.32.97.*	15:11:23	www.google.com
使用的语法:awk [ -v Assignment ] -f ProgramFile File ...

  这里不是在命令行中直接输入awk的程序指令,而是将指令写在一个文件中,awk通过-f标志来表示从ProgramFile中获取awk程序指令。注意,这里在命令行中定义的变量a,在ProgramFile中是有效的哦~,你会发现,输出中最前面显示的行号,就是通过这个变量a得来的~

  最后的那个 Assignment 和前面的那个类似,只是变量生效的时间不同而已,关于这个部分在后续的关于BEGIN和END模式的时候,再单独拿出来详细说明,更多精彩内容,敬请期待!

转载请注明:Coding Ants » awk命令语法详解及示例(下)

相关文章

我来说说

(便于我们更好的交流)

没有交流就没有进步,在此输入您对本文的看法!
取消