1、简介:
awk是一种编程语言,用于在linux/unix下对文本和数据举行处置。数据可以来自尺度输入、一个或多个文件,或其它下令的输出。它支持用户自定义 函数和动态正则表达式等先进功效,是linux/unix下的一个壮大编程工具。它在下令行中使用,但更多是作为剧本来使用。awk的处置文本和数据的方 式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上举行你想要的操作。若是没有指定处置动作,则把匹配的行显示到标 准输出(屏幕),若是没有指定模式,则所有被操作所指定的行都被处置。awk划分代表其作者姓氏的第一个字母。由于它的作者是三小我私家,划分是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。

2、语法:
awk [选项参数] ‘script’ var=value file(s)

awk [选项参数] -f scriptfile var=value file(s)
使用方法:
awk ‘{pattern + action}’ {filenames} # pattern 示意AWK在数据中查找的内容,而action 是在找到的匹配内容时所执行的一系列下令。花括号({})不需要在程序中始终泛起,是用于凭据特定的模式对一系列指令举行分组。pattern 就是要示意的正则表达式,用斜杠括起来。
通常,awk是以文件的一行为处置单元。awk每接受文件的一行,然后执行响应的下令,来处置文本。
在awk中,花括号用于将几块代码组合到一起,这一点类似于C语言。

-F参数:指定分开符,可以指定一个或多个。
NF :用来纪录一行中有多少个字段
NR:纪录数目,一行就是一个纪录。

例子:
cat test
i am a student ;
you are a teacher;

awk -F “ “ ‘{print $2}’ test
则输出:
am
are
注释:-F后面指定” “ 空格为分开符; $2,示意第2个字段; test :示意是文件名。
awk会凭据空格和制表符,将每一行分成若干字段,依次用$1 $2 $3 代表第一个字段、第二个字段、第三个字段。

3、变量
除了 $+数字 示意某个字段,awk 还提供了其他一些变量
变量NF:示意当前行有多少个字段,因此 $NF 示意一行的最后一个字段;
print 下令内里的逗号,示意输出的时刻,两个部门之间使用空格分开。
变量NR:示意当前处置的是第几行
print下令内里,若是原样输出字符,要放在双引号内里。

awk 的其他内置变量如下:
FILENAME:当前文件名
FS:字段分开符,默认是空格和制表符。
RS:行分开符,用于分开每一行,默认是换行符。
OFS:输出字段的分开符,用于打印是分开字段,默以为空格。
ORS:输出纪录的分开符,用于打印时分开纪录,默以为换行符。
OFMT:数字输出的花样,默以为:%6.6g

4、函数
awk 提供了内置函数,利便对原始数据的处置
常用的函数:
toupper(): 字符转为大写
tolower():字符转为小写
length():返回字符串长度
substr():返回子字符串
sin():正弦
cos():余弦
sqrt():平方根
rand():随机数


,

欧博手机版下载

欢迎进入欧博手机版下载(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

,

5、条件
awk 允许指定输出条件,只输出相符条件的行。
输出条件要写在动作的前面。
awk ‘条件 动作’ 文件名


6、if语句
awk 提供了if结构,用于编写庞大的条件。不仅可以指定if,还可以指定else部门。举例如下:

AWK 运算符: