当前位置: 首页 > news >正文

AWK 文本分析工具核心总结

大家好,欢迎来到程序视点!我是你们的老朋友.小二!

AWK 文本分析工具核心总结

1. AWK 简介
  • 定义:AWK 是一种强大的文本分析工具,擅长数据扫描、处理及生成报告。

  • 版本:awk(原始版)、nawk(增强版)、gawk(GNU 版,最常用)。

  • 核心功能:逐行读取文本,默认以空格分隔字段(域),支持自定义分隔符,对切片后的数据进行处理。

2. 基本语法与调用方式
  • 语法结构

    awk '{pattern + action}' filename
    
    • pattern:匹配模式(如正则表达式)。

    • action:匹配后执行的操作(如打印、计算)。

  • 调用方法

    1. 命令行直接调用
      awk -F '分隔符' '命令' 输入文件  
      
    2. 脚本调用:将 AWK 命令写入可执行文件,首行指定解释器(如 #!/bin/awk)。

    3. 加载脚本文件
      awk -f 脚本文件 输入文件  
      
3. 核心功能示例
  • 提取字段

    # 显示文件每行的第1列(默认空格分隔)
    awk '{print $1}' file  # 指定冒号分隔符(如处理 /etc/passwd)
    awk -F: '{print $1}' /etc/passwd  
    
  • 添加表头与表尾

    awk -F: 'BEGIN {print "Name,Shell"} {print $1","$7} END {print "End"}' /etc/passwd  
    
  • 条件过滤

    # 匹配含 "root" 的行
    awk -F: '/root/' /etc/passwd  # 正则匹配(root 开头)
    awk -F: '/^root/' /etc/passwd  
    
4. 内置变量
变量用途
$0当前整行记录
$1, $2…第1、2…个字段
NF当前行的字段数
NR当前行号
FS输入字段分隔符(默认空格)
OFS输出字段分隔符(默认空格)
FILENAME当前文件名
5. 进阶功能
  • 自定义变量与统计

    # 统计行数
    awk '{count++; print $0} END {print "Total:", count}' file  # 初始化变量
    awk 'BEGIN {count=0} {count++} END {print count}' file  
    
  • 条件与循环

    # 条件判断(过滤非4096字节的文件)
    ls -l | awk '{if ($5 != 4096) size+=$5} END {print size/1024 "KB"}'  # 循环遍历数组
    awk -F: '{name[NR]=$1} END {for (i=1; i<=NR; i++) print i, name[i]}' /etc/passwd  
    
6. 输出格式化
  • **printf 替代 print**:支持类似 C 语言的格式化输出。
    awk '{printf("Line %d: %s\n", NR, $0)}' file  
    
7. 典型应用场景
  • 日志分析(提取特定字段)。

  • 数据统计(如文件大小总和、行数统计)。

  • 格式化报告生成(添加表头、表尾、分隔符)。

总结

AWK 的核心价值在于其 字段处理能力灵活的脚本编程,适用于结构化文本的快速分析。通过内置变量、条件判断、循环和数组,可实现复杂的数据处理任务,是 Linux 系统管理及数据分析的利器。

更详细文档参考:GNU AWK 手册

最后

【程序视点】助力打工人减负,从来不是说说而已!后续小二哥会继续详细分享更多实用的工具和功能。

如果这篇文章对你有帮助的话,别忘了【在看】【点赞】支持下哦~

相关文章:

  • HashMap,高效 哈希
  • Python生活手册-文件二进制:从快递柜到生鲜冷链的数据保鲜术
  • 业务流程BPM能力框架体系及华为中兴流程变革案例P83(83页PPT)(文末有下载方式)
  • python拜占庭将军
  • 【大模型实战篇】华为信创环境采用vllm部署QwQ-32B模型
  • 部署.NET6.0 Web API项目到Docker
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的电商直播流量转化路径研究
  • 【Linux】Makefile
  • AI大模型基础设施:主流的几款开源AI大语言模型的本地部署成本
  • kafka学习笔记(四、生产者(客户端)深入研究(二)——消费者协调器与_consumer_offsets剖析)
  • windows系统搭建自己的ftp服务器,保姆级教程(用户验证+无验证)
  • 简单的Qwen3的本地部署、分析与常见报错
  • CSS学习笔记14——移动端相关知识(rem,媒体查询,less)
  • RDMA高性能网络通信实践
  • 计算机视觉(CV)技术的优势和挑战(本片为InsCode)
  • 【分享】deepseek 超强ai助手 1.1.8最新版 不卡顿
  • jenkins 远程执行 定时 执行shell
  • SQL数据库系统全解析:从入门到实践
  • H7-TOOL固件2.29发布,支持各种第3方串口桥接功能,RTT自动重连,CAN/RTT/UART窗口独立同时刷新,增加多款脱机烧录(2025-04-30)
  • 多模态大语言模型arxiv论文略读(五十三)
  • 2025财政观察①长三角罚没收入增速放缓,24城仍在上涨
  • 美国季度GDP时隔三年再现负增长,特朗普政府关税政策对美国经济负面影响或将持续
  • 万科:一季度营收近380亿元,销售回款率超100%
  • 160名老人报旅行团被扔服务区?张家界官方通报
  • 金融街:去年净亏损约110亿元,今年努力实现经营稳健和财务安全
  • 体坛联播|利物浦提前4轮夺冠,安切洛蒂已向皇马更衣室告别