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