Text Swordsman
awk
基本语法
awk [POSIX or GNU style options] -f progfile [--] file
POSIX options: GNU long options: (standard)
-f progfile --file=progfile
-F fs --field-separator=fs
-v var=val --assign=var=val
-F fs # fs指定输入分隔符,fs 可以是字符串或正则表达式,如-F:
-v var=val # 赋值一个用户定义变量,将外部变量传递给awk
-f progfile # 从脚本文件中读取awk命令
# example
awk -F':' '{print $1}' /etc/passwd
awk 'BEGIN { print "Don\47t Panic!" }'
# 运行 awk 程序,打印每行输入流的第一列
awk '{print $1}'
# awk 文件方式执行
cat > demo.awk << "EOF"
#! /bin/awk -f
BEGIN { print "Don't Panic!" }
EOF
# 运行
awk -f demo.awk top.txt
chmod +x demo.awk && ./demo.awk变量
变量
说明
ARGC
命令行参数数量
ARGIND
命令行中当前文件的位置(从0开始算)
ARGV
包含命令行参数的数组
CONVFMT
数字转换格式(默认值为%.6g)
ENVIRON
环境变量关联数组
ERRNO
最后一个系统错误的描述
FIELDWIDTHS
字段宽度列表(用空格键分隔)
FILENAME
当前输入文件的名称
FNR
同NR,但相对于当前文件
FS
字段分隔符(默认是任何空格)
IGNORECASE
如果为真,则进行忽略大小写的匹配
NF
表示字段数,在执行过程中对应于当前的字段数
NR
表示记录数,在执行过程中对应于当前的行号
FILENAME
当前输入文件的名
OFMT
数字的输出格式(默认值是%.6g)
OFS
输出字段分隔符(默认值是一个空格)
ORS
输出记录分隔符(默认值是一个换行符)
RS
记录分隔符(默认是一个换行符)
RSTART
由match函数所匹配的字符串的第一个位置
RLENGTH
由match函数所匹配的字符串的长度
SUBSEP
当前输入文件的名
FILENAME
数组下标分隔符(默认值是34)
函数 && 条件
常用用法
grep
基本语法
常用用法
sed
基本语法
常用用法
Last updated