AWK入门学习

AWK入门学习

AWK简介

用AWK,起码要知道它是什么。AWK是贝尔实验室于1977年研发处理文本文件的语言,是一个强大的文本处理、分析工具。我们在日常开发中排查线上问题、分析日志时经常需要用到AWK。其名字是取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。

AWK使用

调用方式

1.命令行方式
awk [-F field-separator] ‘commands’ input-file(s)
其中,[-F 域分隔符]是可选的,commands 是真正的awk命令, input-file(s) 是待处理的文件。在awk中,可以将文件的每一行看作一个输入的基本单位,在每一行中,由域分隔符分开的每一项称为一个域。一般,在不指名-[F 域分隔符] 的情况下,空格为默认的域分隔符。
2.shell脚本方式
将所有的awk命令写入一个文件,调用chmod命令使其可执行,将其作为一个可执行的awk脚本(类比shell脚本)。注意,脚本的首行指明由awk命令解释器执行,即:#!/bin/awk,类比shell脚本首行的:#!/bin/sh,然后就可以通过键入脚本名称的方式来调用了。
3.awk命令
与方式2基本相同,只是不需要在脚本首行 写:#!/bin/awk,也无需调用chmod命令。只需将所有的awk命令写入一个文件即可,然后执行如下命令执行就好。

awk -f awk-script-file input-file(s)

其中,-f 选项加载 awk-script-file(即自己编写的awk脚本),input-file(s)为要处理的文件名(注意路径)。

基本语法

awk '{pattern + action}' {filenames}

一般,awk以文件的一行为处理单位,awk接收文件的一行作为输入,然后执行相应的命令,处理文本。

awk整体语法有些复杂,但最基本的语法结构如上所示。其中 pattern 本质为正则表达式,用斜杠括起来, awk用其在文件中要查找待处理的内容,而 action 是在找到匹配内容时所需要执行的一系列命令。花括号‘{}’不需要在程序中始终出现,但需要用它们根据特定的模式对一系列指令进行分组。

awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,抽取信息后,进行其他文本处理、分析操作;而完整的awk脚本通常用来格式化文本文件中的信息。

实例

猜你喜欢

转载自blog.csdn.net/xiaomingdetianxia/article/details/80219501