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