Lazy loaded imageLinux awk 工具笔记

type
status
date
slug
summary
tags
category
icon
password
comment
awk 是一个强大的文本处理工具,比 sed 更灵活,尤其适合基于 行与列 的数据处理与分析。它由 Aho、Weinberger、Kernighan 三人设计,名字取自三人姓氏首字母。

1. 基本语法

  • 条件:用于匹配行(如行号、列值或模式)。缺省时匹配所有行。
  • 动作:对匹配行进行操作(打印、替换、计算)。缺省动作为 print
示例
输出:

2. 工作流程

  1. 将行拆分为字段(列)。
  1. $1$2 表示列,$0 表示整行。
  1. 按条件判断是否匹配。
  1. 执行 {动作}

3. 常用操作

3.1 打印指定列

3.2 条件筛选

3.3 匹配模式


4. 常用内置变量

变量
描述
$0
当前行内容
$1, $2
当前行的第 1、2 列
NR
行号,从 1 开始
NF
当前行的列数
FS
输入分隔符(默认空格/制表符)
OFS
输出分隔符(默认空格)
RS
输入行分隔符(默认换行)
ORS
输出行分隔符(默认换行)
示例

5. 高级操作

5.1 设置分隔符

5.2 列求和

5.3 条件组合

5.4 匹配范围

  • 按行号:
  • 按模式:

6. 原地修改

awk 无法直接改文件,可通过重定向实现:

7. 与其他工具结合

7.1 管道结合

7.2 配合 grep


8. 使用脚本文件

脚本(example.awk):
运行:

9. 总结

  • awk 适合处理表格型和结构化文本,支持条件筛选、计算、分组、模式匹配。
  • 常用场景包括日志分析、数据提取、报表统计、配合管道进行数据流处理。
常用命令小抄
 
Prev
Linux sed 工具笔记
Next
CSS 笔记
Loading...
Article List
Evan の Logbook
✨ Updates
🎨 Style Guide
🧠 Creative Resources
🗒️ Mind Notes
🧭 Knowbase
📘 SOPs
🩺 Medical Research
🛠️ Tech Chronicles
💰 Fortune Blueprint
📈 R Visionary
📊 Statistics
🖼️ BioVis