插件窝 干货文章 如何使用awk输出文本中的字段和列 - 详细教程

如何使用awk输出文本中的字段和列 - 详细教程

awk命令 文本处理 Linux命令 字段提取 列输出    来源:    2025-08-11

如何使用awk输出文本中的字段和列

awk是Linux/Unix系统中强大的文本处理工具,特别适合处理结构化文本数据。本文将详细介绍如何使用awk命令输出文本中的特定字段和列。

1. awk基本语法

awk的基本命令格式为:

awk 'pattern {action}' filename

2. 输出特定字段

awk默认以空格或制表符作为字段分隔符,$1表示第一个字段,$2表示第二个字段,以此类推:

# 输出第一列
awk '{print $1}' filename

# 输出第一和第三列
awk '{print $1,$3}' filename

# 输出最后一列
awk '{print $NF}' filename

3. 指定分隔符

使用-F选项指定分隔符:

# 以逗号为分隔符
awk -F',' '{print $1}' filename

# 以冒号为分隔符
awk -F':' '{print $1,$3}' filename

4. 处理固定宽度列

对于固定宽度的文本,可以使用substr函数:

# 输出第5-10个字符
awk '{print substr($0,5,6)}' filename

5. 高级输出技巧

# 输出时添加自定义分隔符
awk '{print $1 "|" $3}' filename

# 格式化输出
awk '{printf "%-10s %5d\n", $1, $3}' filename

# 输出行号
awk '{print NR, $0}' filename

6. 实际应用示例

处理/etc/passwd文件:

# 输出用户名和登录shell
awk -F':' '{print $1,$7}' /etc/passwd

# 统计文件行数
awk 'END{print NR}' filename

通过掌握这些awk技巧,您可以高效地处理各种文本数据提取需求。