UP | HOME

gawk

Table of Contents

1 Gawk 使用笔记

gawk能提供一个类编程环境,允许修改和重新组织文件中的数据。

1.1 命令格式

`gawk options program file`

1.2 选项

选项 描述
-F fs 指定行中分隔数据字段的字段分隔符
-f file 指定程序要处理的文件名
-v var=value 定义gawk程序中的一个变量及其默认值
-mf N 指定要处理的数据文件的最大字段数
-mr N 指定要处理的数据文件的最大行数
-W keyword 指定gawk的兼容模式和警告级数

1.3 使用

1.3.1 从命令行读取程序脚本

gawk脚本用花括号来定义,命令放在单引号之间,如:`gawk '{print “Hello Gawk”}’`, 要终止gawk,需要生成EOF字符,bash中Ctrl+D可产生EOF。

1.3.2 使用数据字段变量

gawk默认使用空格作为分隔符,将每一行分成N个变量,$0表示整行,$1表示第一个变量,$2表示第二个变量,以此类推。


使用-F可以指定分隔符,如: `gawk -F: '{print $1}' /etc/passwd/`输出所有用户。

1.3.3 使用多个命令

命令行输入多个命令可用`;`间隔,如: `echo “My Name is Minejo” | gawk '{$4="Jonathan”; print $0}’`

1.3.4 从文件读取程序

For Example:

$ cat script2
{ print $1 "'s home directory is " $6 }

$gawk -F: -f script2 /etc/passwd 
root's home directory is /root 
...

Notice:程序脚本中变量不要加$符号

1.3.5 处理前后运行脚本

相当于报告的开头结尾一样,在处理数据前后加一段

$gawk 'BEGIN {print "The data file Contents:" } {print $0 }  END {print "End of file"}' data

Notice:在begin里面可以定义FS

Author: Jonathan

Created: 2017-02-22 周三 10:37

Emacs 24.3.50.3 (Org mode 8.0.3)

Validate