5. awk
awk 是一个维护和处理文本数据文件的强大语言。在文本数据具有一定的格式时,即每行数据包含多个以分隔符分隔的字段时,显得尤其有用。即便是驶入的文件没有一定的格式,仍然可以使用 awk 进行基本的处理。简言之,awk 是一种能处理从琐碎的小事到日常例行公事的强大语言
5.1 基础语法
5.1.1 语法格式
awk -F<s> '/PATTERN/ {ACTION}' FILE_NAME
或者直接
awk -F<s> '{ACTION}' FILE_NAME
5.1.2 解释
-F<s>
指定分隔符。 默认是以空格作为分隔符。后续会介绍如何使用-F
设定分隔符,以及如何在 BEGIN 中设置分隔符/PATTERN/
:
指定匹配模式。 如果没有指定匹配模式,则 awk 将处理输入文件中的所有记录{ACTION}
:
指定处理方式。 awk 命令中所有的处理方式都要写在花括号中,多个处理方式之间以分号 ' ; ' 隔离FILE_NAME
:
指定待处理的文件。 可以是多个文件,当然 awk 也支持管道数据
5.1.3 举例
$ awk -F: '/nobody/ {print $1}' /etc/passwd
nobody
-
-F:
:指定分隔符为:
-
/nobody/
:匹配的模式指定为“包含nobody
”的行 -
{print $1}
:执行的动作为打印$1
,其中$1
代表以:
分隔的第一区段 -
/etc/passwd/
:指定所要处理的文件