linux中的awk命令用法
linux中的awk命令用法详细介绍
awk 是 Linux 中一个功能强大的文本处理工具,可用于数据提取、格式化和转换。下面为你介绍它的常见用法:
基本语法
plaintext
awk [选项] '模式 {动作}' 文件
模式 用于筛选符合条件的行,动作 则是对匹配行执行的操作。若未指定模式,默认匹配所有行;若未指定动作,默认打印匹配行。
常见用法示例
1. 打印文件的所有行
bash
file.txt
此命令会将 file.txt 文件的所有行打印出来,{print} 意味着对每一行执行打印操作。
2. 打印指定列
bash
file.txt
这里 $1 和 $3 分别代表每行的第一列和第三列,此命令会打印出 file.txt 文件中每行的第一列和第三列内容。
3. 按条件筛选行
bash
file.txt
该命令会筛选出 file.txt 文件中第二列数值大于 10 的行并打印。
4. 计算某列的总和
bash
file.txt
此命令会计算 file.txt 文件中第一列所有数值的总和。sum += $1 用于累加第一列的值,END 表示在处理完所有行后执行 {print sum} 操作,将总和打印出来。
5. 按分隔符处理文件
bash
file.txt
-F ':' 表示使用冒号作为字段分隔符,此命令会打印出 file.txt 文件中每行以冒号分隔的第一列和第三列内容。
内置变量
awk 有一些内置变量,常用的如下:
$0:表示当前整行。$n:表示第n列。NF:表示当前行的字段数量。NR:表示当前处理的行号。
例如,打印每行的字段数量:
bash
file.txt
示例文件操作
假设 file.txt 文件内容如下:
plaintext
apple 10 20banana 15 30
cherry 20 40
- 打印每行的第一列和第三列:
bash
file.txt
输出:
plaintext
apple 20banana 30
cherry 40
- 计算第二列的总和:
bash
file.txt
912 file.txt
输出:
plaintext
45
912
通过上述示例,你可以掌握 awk 命令的基本用法。在实际应用中,你可根据具体需求灵活组合模式和动作,实现复杂的文本处理任务。