本章目录
1. awk 命令概述
1.1 awk 常见用法
1.2 awk 工作原理
1.3 awk 命令格式
2. 用法实例
2.1 按行输出文本
2.2 按字段输出文本
2.3 通过管道符号和双引号调用shell命令
2.4 组合使用
1. awk 命令概述
在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被广泛应用于 Shell 脚本,完成各种自动化配置任务。
1.1 awk 常见用法
sed 命令常用于一整行的处理,而 awk 比较倾向于将一行分成多个“字段”然后再进行处理,且默认情况下字段的分隔符为空格或 tab 键。
awk 执行结果可以通过 print 的功能将字段数据打印显示。
在使用 awk 命令的过程中,可以使用逻辑操作符:
还可以进行简单的数学运算:
1.2 awk 工作原理
awk 借用 shell 中类似于位置变量的方法, 用 $1、$2、$3… 顺序地表示行(记录)中的不同字段。
另外 awk 用 $0 表示整个行(记录)。
不同的字段之间是通过指定的字符分隔。
awk 默认的分隔符是空格。
awk 允许在命令行中用 “-F 分隔符” 的形式来指定分隔符。
1.3 awk 命令格式
命令行格式:
#过滤并输出文件中符合条件的内容
#从脚本中调用编辑指令,过滤并输出内容
awk 包含几个特殊的内建变量(可直接用)如下所示:
FS | 指定每行文本的字段分隔符,默认为空格或制表位。 |
NF | 当前处理的行的字段个数。 |
NR | 当前处理的行的行号(序数)。 |
$0 | 当前处理的行的整行内容。 |
$n | 当前处理行的第 n 个字段(第 n 列)。 |
FILENAME | 被处理的文件名。 |
RS |
“行“分割符,awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录; |
2. 用法实例
2.1 按行输出文本
2.2 按字段输出文本
2.3 通过管道符号和双引号调用shell命令
2.4 组合使用
-