AWK原理及命令和文件输入

一,awk简介
 1,
 awk是3个姓氏的首字母,代表该语言的3个作者,awk的版本有很多,包括:旧版awk,新版awk(nawk),GNU awk(gawk)等。
 awk程序有awk命令,括在引号或写在文件中的指令以及输入文件这几个部分组成。
 2,
 [root@rhel helinbash]# which awk
 /bin/awk
 [root@rhel helinbash]# which gawk
 /bin/gawk
 [root@rhel helinbash]# ls -l /bin/awk /bin/gawk
 lrwxrwxrwx 1 root root      4 Oct 10  2013 /bin/awk -> gawk
 -rwxr-xr-x 1 root root 320416 Jan 15  2007 /bin/gawk
 [root@rhel helinbash]#
注:以后的例子都是采用gawk命令

二,awk工作原理
 1,
 以下内容的names文件名举例按步骤解析awk的处理过程
 (1)
 vim names
 Tom Savage 100
 Molly Lee 200
 John Doe 300
 (2)
 [root@rhel helinbash]# cat names.txt | cut -d  ' ' -f 2
 

Savage
        Lee
 

[root@rhel helinbash]# cat names.txt | cut -d  '\t' -f 2 
 cut: the delimiter must be a single character
 Try `cut --help' for more information.
 [root@rhel helinbash]#
(3)
 [root@rhel helinbash]# gawk '{ print $1,$3 }' names.txt
 
 
 Tom 100
 Molly 200
 John 300
 
 [root@rhel helinbash]#

[root@rhel helinbash]# gawk '{ print $1        $3 }' names.txt 
 

Tom100
 Molly200
 John300
 
[root@rhel helinbash]#

2,
 原理图
 FS:Field separator(分隔符)
 OFS:Output Field Separator
AWK原理及命令和文件输入

第三步:awk中print命令打印字段;{print $1,$3} 只取有用的第一段和第三段;在打印时$1和$3之间由空格间隔。“,”逗号是一个映射到内部的输出字段分隔符(OFS),OFS变量
 缺省为空格,逗号在输出时被空格替换。接下来,awk处理下一行数据,直到所有的行处理完。

相关推荐