awk入门基础——什么是awk?怎么跑起来?

简介: awk是Linux下强大的文本处理工具兼脚本语言,擅长逐行提取、过滤与计算(如日志IP提取、字段统计)。其核心为“读取—处理—输出”三步机制,支持命令行单引号脚本和外部脚本文件两种运行方式,基于gawk兼容性强,入门简单、实用高效。

1. 先搞懂:awk到底是个啥?

很多Linux新手看到awk就头大,觉得它是个高深的命令,其实一句话就能说透:awk是一个文本处理工具,更是一门简单的脚本语言,核心作用就是“读取文本、处理文本、输出结果”。

你可以把它想象成一个“文本流水线工人”:它会一行一行地读取你的文本文件,按照你设定的规则,对每一行进行加工(比如提取指定内容、过滤符合条件的行、做简单计算),最后把加工好的结果输出给你。

咱们平时用grep只能“找内容”,用sed能“改内容”,而awk擅长“提取+处理”——比如从日志里提取IP、统计某个字段的总和、按条件筛选行并格式化输出,这些都是awk的强项。

补充一点:咱们Linux系统里,默认的awk一般是gawk(GNU awk),它是awk的增强版,支持更多功能,咱们这三篇教程,全是基于gawk讲解(和系统默认awk用法完全兼容,放心学)。

2. 入门必看:awk的运行机制(浅显版)

在学具体命令之前,先搞懂awk的运行逻辑,不然学再多参数也会乱。awk的运行就分3步,记好这3步,后续所有用法都能套进去:

  1. 读取行:awk会从指定的文本文件(或标准输入)中,一行一行地读取内容,直到文件结束。

  2. 处理行:对于每一行,都会按照你写的“规则”(脚本)进行处理。规则可以很简单(比如只打印第2列),也可以很复杂(比如判断条件、做计算)。

  3. 输出结果:处理完成后,按照规则将结果输出(默认输出到屏幕,也可以输出到文件)。

举个最直观的例子:假设你有一个文本文件test.txt,内容如下:

张三 20 男
李四 25 女
王五 30 男

如果你用awk命令:awk '{print $2}' test.txt,它的运行过程就是:

  • 读取第一行“张三 20 男”,按照规则“打印第2列”,输出20;

  • 读取第二行“李四 25 女”,打印第2列,输出25;

  • 读取第三行“王五 30 男”,打印第2列,输出30。

是不是很简单?接下来,我们先学“怎么运行awk”,再逐步拆解各种参数和用法。

3. 两种核心运行方式(必掌握)

根据上传的资料,awk有两种核心运行方式:直接在命令行写脚本通过脚本文件运行,两种都要掌握,日常用得最多。

3.1 方式一:命令行直接写脚本(适合简单需求)

语法格式(牢记):

awk [选项] '脚本内容' 要处理的文件

关键注意点:

  • 脚本内容必须用 单引号'' 包裹(避免被Linux shell解析,这是新手最容易踩的坑);

  • 脚本的核心是“模式+动作”,格式一般是:'模式 {动作}'(模式可选,动作必须用{}包裹);

  • 如果没有模式,只写动作,那么awk会对每一行都执行这个动作(比如上面的例子 awk '{print $2}' test.txt,就没有模式,只执行“打印第2列”的动作)。

实操示例(可直接复制运行):

先准备一个测试文件test.txt(和上面一样),执行以下命令,感受效果:

# 1. 打印所有行(动作:print,没有模式,默认处理所有行)
awk '{print}' test.txt
# 输出结果和cat test.txt一样:
# 张三 20 男
# 李四 25 女
# 王五 30 男

# 2. 打印每一行的第1列和第3列($1表示第1列,$3表示第3列,用逗号分隔)
awk '{print $1, $3}' test.txt
# 输出:
# 张三 男
# 李四 女
# 王五 男

# 3. 带模式:只打印“性别为男”的行(模式:$3=="男",动作:打印整行)
awk '$3=="男" {print}' test.txt
# 输出:
# 张三 20 男
# 王五 30 男

# 4. 带模式+复杂动作:打印性别为男的行,并且在前面加“姓名:”“年龄:”
awk '$3=="男" {print "姓名:"$1, "年龄:"$2}' test.txt
# 输出:
# 姓名:张三 年龄:20
# 姓名:王五 年龄:30

补充说明:$0 表示“整行内容”,比如 awk '{print $0}' test.txtawk '{print}' test.txt 效果一样,都是打印整行。

3.2 方式二:通过脚本文件运行(适合复杂需求)

如果你的脚本比较复杂(比如有多条规则、循环、函数),直接写在命令行里会很乱,容易出错,这时候就可以把脚本写到一个文件里,然后用awk去执行这个文件。

语法格式(牢记):

awk [选项] -f 脚本文件名 要处理的文件

关键注意点:

  • -f 选项指定脚本文件(f是file的缩写);

  • 脚本文件里,不需要用单引号包裹脚本内容,直接写“模式+动作”即可;

  • 脚本文件可以任意命名,建议后缀为 .awk(方便识别,比如test.awk)。

实操示例(可直接复制运行):

# 1. 创建一个脚本文件test.awk,写入以下内容(用vim或nano编辑)
vim test.awk
# 脚本内容:
$3=="男" {
   print "男性用户:"$1, "年龄:"$2}
$3=="女" {
   print "女性用户:"$1, "年龄:"$2}

# 2. 保存退出后,用awk执行这个脚本,处理test.txt
awk -f test.awk test.txt

# 3. 输出结果:
# 男性用户:张三 年龄:20
# 女性用户:李四 年龄:25
# 男性用户:王五 年龄:30

是不是很清晰?复杂的逻辑拆分到脚本文件里,后续修改、复用都很方便。

4. 课后练习(自己动手试,巩固记忆):

  1. 用命令行直接写脚本,打印test.txt中“年龄大于25”的行;

  2. 创建一个脚本文件,实现“打印所有行的第1列,并在后面加‘_user’”(比如张三_user);

  3. 尝试用 awk '{print $0, "补充内容"}' test.txt,看看输出效果(理解$0的用法)。

下一篇,我们将详细讲解awk的命令行参数(结合上传资料的所有选项),包括最常用的-F、-v、-e等,还有字段分隔符、变量赋值等核心用法,帮你解锁更强大的文本处理能力!

相关文章
|
13天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
8天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
4886 13
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
9天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
4912 16
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
7天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
3452 8
|
11天前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
7335 16
|
9天前
|
存储 人工智能 机器人
OpenClaw是什么?阿里云OpenClaw(原Clawdbot/Moltbot)一键部署官方教程参考
OpenClaw是什么?OpenClaw(原Clawdbot/Moltbot)是一款实用的个人AI助理,能够24小时响应指令并执行任务,如处理文件、查询信息、自动化协同等。阿里云推出的OpenClaw一键部署方案,简化了复杂配置流程,用户无需专业技术储备,即可快速在轻量应用服务器上启用该服务,打造专属AI助理。本文将详细拆解部署全流程、进阶功能配置及常见问题解决方案,确保不改变原意且无营销表述。
5273 5
|
11天前
|
人工智能 JavaScript API
零门槛部署本地 AI 助手:Clawdbot/Meltbot 部署深度保姆级教程
Clawdbot(Moltbot)是一款智能体AI助手,具备“手”(读写文件、执行代码)、“脚”(联网搜索、分析网页)和“脑”(接入Qwen/OpenAI等API或本地GPU模型)。本指南详解Windows下从Node.js环境搭建、一键安装到Token配置的全流程,助你快速部署本地AI助理。(239字)
4947 22
|
17天前
|
人工智能 API 开发者
Claude Code 国内保姆级使用指南:实测 GLM-4.7 与 Claude Opus 4.5 全方案解
Claude Code是Anthropic推出的编程AI代理工具。2026年国内开发者可通过配置`ANTHROPIC_BASE_URL`实现本地化接入:①极速平替——用Qwen Code v0.5.0或GLM-4.7,毫秒响应,适合日常编码;②满血原版——经灵芽API中转调用Claude Opus 4.5,胜任复杂架构与深度推理。
9445 13