文章目录
简介:
awk是linux文本处理三大命令之一。 哪3大: grep、awk、sed。
awk强在pattern匹配和处理,他甚至可以作为一门独立的语言。
注:这里说awk是命令也对,说awk是语言也对。因为他有独立的语法,函数等。
输入
输出
一定要有文件才能输出吗
不是。以下语句直接可以输出:
awk 'BEGIN{print "chuasdf"}'
awk简单写法
'BEGIN{FS=""}{}END{}'/
awk内置参数
awk内置参数(Built-in Variables)有哪些
在awk手册中Built-in Variables这一栏。
参数 | 描述 |
---|---|
ARGC | 命令行参数的数量(不包括gawk选项或程序源)。 |
ARGIND | 正在处理的当前文件的ARGV索引。 |
ARGV | 命令行参数的ARGV数组。数组的索引从0到ARGC-1。动态更改ARGV的内容可以控制用于数据。 |
BINMODE | |
CONVFMT | |
ENVIRON | |
ERRNO | |
FIELDWIDTHS | |
FILENAME | |
FNR | |
FPAT | |
FS | |
IGNORECASE |
FS
指定分隔符,如果不指定,默认是逗号。
awk内置函数
match函数
match函数:
返回值是匹配的个数
echo "chushiyun" | awk '{result=match("chushiyun",/u/);print result}'
awk中的变量
指定变量直接指定,使用的时候也不用加$。
0 − 0- 0−i
$0表示这一行。 $1-9表示第几个匹配的字段。那么如果有更多呢,这里显式的是不支持更多了,例如 11 这 种 是 不 支 持 的 , 但 是 可 以 在 f o r 循 环 中 用 11这种是不支持的,但是可以在for循环中用 11这种是不支持的,但是可以在for循环中用i。
BEGIN、END的用法
BEGIN{}
{printf 1234}
END{}
BEGIN{}
{printf 1234}
END{}
awk家族其他命令
awk 是最基础的命令,类似的还有很多。
gawk 如果把awk当做一门语言,gawk就是这门语言的实现。
dgawk gawk的debug版本。
nawk new awk。
mawk media awk,专门用来处理多媒体信息。