AWK工具快速入门
AWK工具快速入门
- AWK的介绍
- 语法
- 参数
- 举例说明
- AWK的内建变量
- FS使用实例
- NF使用实例
AWK的介绍
AWK是一个特定领域的语言被用于文本处理,并且被用于典型的数据提取和报告工具。
和sed,grep一样,它是一个过滤器,并且它是大多数Unix-like操作系统的标准特性。
AWK语言是一种数据驱动的脚本语言,由一系列的操作组成,这些操作被用于应对文本数据的流或者是被用于文件或者管道中。它的目的是为了提取和转换文本。比如生成格式化的报告。关联数组以及使用了正则化表达式。
语法
awk [options] 'script' var=value file(s)
我们使用一个或者多个文件来进行阅读,可以从左往右进行阅读。我们可以输入一个或者多个文件进行处理。
文件通过这个脚本进行处理。在处理这些脚本之前,我们可以定义一些变量。这些变量可以直接用在这些脚本中。
最后通过这个脚本处理,过后我们可以将这个结果通过awk打印出来。
参数
-v var=value
v代表初始化一些参数,这里参数的说明和上方语法中的参数说明是一样的。
-F[separator]
-F指的是读入这个文件的时候是以什么分隔符进行分隔和操作的。默认我们以空格和制表位进行分隔。
-f[script name][file names…]
-f这个参数用于将script改变为一个文件名称。文件的内容就是相应的脚本。
举例说明
现在有一个关于汇率信息的文件:
如果我们想要更好地阅读他,提取中间的关键信息,假设我们现在想看他的1,3,5三行,那么可以这样做:
换成制表符:
可以看到,他的间隔就更加大一些了。可阅读性也更好了一些。
如果我们现在想要阅读他全部的阅读信息:
可以看到,所有的信息都被打印出来了。
找出第三列中大于500的值:
AWK的内建变量
$0 完整的输入记录
FS 字段分隔符(默认是任何空格)
NF 一条记录的字段的数目(也就是有多少列)
NR 行号,从1开始计数
OFS 输出字段分隔符(打印在显示屏上,划分的符号)
FS使用实例
这说明最初的文本分隔符就为空格,所以他能将这个文本的AWK操作进行正确的打印。
如果改为了逗号:
由于第一行没有任何的逗号作为分隔,所以这一整行被视为一个信息。
NF使用实例
前面的数字就是column数:
前面的数字是行数:
将空格改成制表符进行分隔:
参考资料:AWK工具快速入门
还没有评论,来说两句吧...