awk命令格式
awk options program file
awk命令参数可以选项使用说明
选项 | 描述 |
-f fs | 指定行中分隔数据字段的字段分隔符 |
-f file | 指定读取程序额文件名 |
-v var=value | 定义awk中的一个变量及其默认值 |
-mf n | 指定要处理的数据文件中的最大字段数 |
-mr n | 指定数据文件中的最大数据行数 |
-w keyword | 指定awk的兼容模式或告警级别 |
awk从命令行读取程序脚本
awk脚本用一对花括号来定义。必须将脚本命令放在花括号中。由于awk命令行假定脚本是单个文本字符串,则必须将脚本放到单引号中,例如
awk '{print "today is 10,24"}'
awk使用数据字段变量
变量 | 用途 |
$0 | 代表整个文本行 |
$1 | 代表文本行中的第一个数据字段 |
$2 | 代表文本行中的第二个数据字段 |
$n | 代表文本行中的第n个数据字段 |
例如
awk -f : '{print $1}' /etc/passwd
这个脚本显示了系统上密码文件第一列数据字段。
在程序脚本中使用多个命令
awk支持将多条命令组合到一条命令中执行。
echo "today is monday" | awk '{$3="friday" ; print $0}'
第一条命令会将一个值赋值给$3字段变量,第二条命令会打印整个数据字段。
从文件中读取程序
cat showdir
{ print $1 "'s home directory is " $6 }
awk -f: -f showdir /etc/passwd\
showdir脚本定义了一个变量来保存print命令中用到文本字符串,注意awk脚本在引用变量时没有使用美元符号。
在处理数据前运行脚本
例如
awk 'begin { print "the data file contents:" } { print $0 }' data
awk允许指定程序脚本何时运行。
在处理数据后运行脚本
例如
awk 'begin { print "the data file contents:" } { print $0 }
end { print "end of file" }' data