利用 sed 和 awk 进行模式匹配与正则表达式操作
1. awk 基本工作原理
awk 是一个强大的文本处理工具,其基本工作流程如下:
- awk 从文件中读取一行数据,并将其存入内部变量 $0 中,每一行被称为一个记录(record),默认情况下,每行以换行符结尾。
- 接着,每个记录会被分割成独立的单词或字段(field),每个单词会被存储在编号变量 $1 、 $2 等中,每个记录最多可有 100 个字段。
- awk 有一个内部变量 IFS (Internal Field Separator),默认值为空白字符(包括制表符和空格),字段将由 IFS 分隔。若要指定其他 IFS ,如 /etc/passwd 文件中的冒号 : ,则需在 awk 命令行中指定。
例如,执行以下命令:
$ awk '{print $1, $3}' sample.txt
该命令会打印每行的第一个和第三个字段,字段间默认用空格分隔。其工作原理的流程图如下:
graph TD;
A[读取文件一行到 $0] --> B[按 IFS 分割字段];
B --> C[根据命令处理字段];
C --> D[输出结果];
超级会员免费看
订阅专栏 解锁全文
1252

被折叠的 条评论
为什么被折叠?



