在管理和维护Linux系统过程中,有时可能需要从一个具有一定格式的文本(格式化文本)中抽取数据,这时可以使用awk编辑器来完成这项任务。发明这个工具的作者是Aho、Weinberg和Kernighan,取三个人名的首字母而得名awk。
与sed相比,awk更擅长处理格式化文本。格式化文本一般使用某个特定的字符(称为域分隔符)将文本中不同的字段(称为域)隔开。例如用于保存用户信息的系统用户文件/etc/passwd,该文件使用冒号分别将用户名、密码、UID等字段分隔开。
一、awk命令基本格式 命令格式:
awk [-F] ‘command’ input-file
awk –f script input-file
与sed类似,awk也有两种调用方式:第一种是直接使用awk命令调用,选项F用于指定域分隔符。默认情况下awk使用的域分隔符是空格,如果要处理的文件input-file的域分隔符不是空格,应该使用F选项另行指定。第二种方法跟sed一样,先将要输入的选项模式和动作放入一个脚本文件中,然后使用选项f调用。
命令处理过程:
awk被调用后,首先读入第一行文本并按选项F指定的域分隔符将各个字段划开。以/etc/passwd其中一行为例:
root:x:0:0:root:/root:/bin/bash,人生就像是一场旅行,遇到的既有感人的,