news 2026/8/20 0:15:48

linux awk使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux awk使用

1.概述

awk是 Linux 系统中一个非常强大的文本处理工具,常被称为“三剑客”之一(另外两个是grepsed)。它主要用于从文本文件中提取、过滤和处理数据,尤其适合处理结构化数据,例如日志文件、CSV 文件等。

2.基本语法

awk [选项] '模式或条件 { 编辑指令 }' 文件

其中:

  • 选项‌:如-F指定字段分隔符,-v定义变量等。
  • 模式或条件‌:用于匹配输入行的规则,例如正则表达式。
  • 编辑指令‌:在匹配到行后要执行的操作,通常用大括号{}包裹。
  • 文件‌:要处理的输入文件。

3. 常见用法示例

1. 打印文件中的所有内容

awk '{print}' file.txt

awk '{print $0}' file.txt

2.指定字段分隔符

默认情况下,awk使用空格或制表符作为字段分隔符。如果文件使用逗号分隔,可以使用-F选项指定分隔符:

awk -F',' '{print $1, $2}' file.csv

3.提取特定字段

假设有一个文件,每行有多个字段,例如:

张三 25 工程师
李四 30 经理

你可以只打印第一列(姓名):

awk '{print $1}' file.txt

要打印第二列和第三列:

awk '{print $2, $3}' file.txt

4.条件匹配

可以使用模式匹配来筛选特定行。例如,只打印年龄大于 30 的行:

awk '$2 > 30 {print $0}' file.txt

使用 BEGIN 和 END

awk 'BEGIN { print "开始处理文件" } { print $0 } END { print "处理完成" }' file.txt

4.内置变量

awk提供了一些常用的内置变量,帮助处理数据:

  • $0:整行内容。
  • $1,$2, ...,$n:第 1、2、...、n 个字段。
  • NF:当前行的字段数。
  • NR:当前记录(行)号。
  • FS:输入字段分隔符,默认为空格。
  • OFS:输出字段分隔符,默认为空格。

示例

假设有一个文件data.txt内容如下:

1:Small house:Vermont:100 sqm
2:Large house:San Diego:300 sqm
3:Apartment:New York:70 sqm
4:Houseboat:Lond:Seattle:150 sqm


可以使用如下命令打印前两个字段:

awk -F':' '{print $1, $2}' data.txt

5.总结

awk是一种功能强大的文本处理工具,适用于数据分析、日志解析、格式化输出等多种场景。它支持复杂的模式匹配、条件判断、变量使用和函数调用,是 Linux 系统管理员和开发人员不可或缺的工具之一。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 0:13:18

揭秘 GEO AI 搜索排名的商业价值

揭秘 GEO AI 搜索排名的商业价值在数字化浪潮中,企业如何快速抢占流量高地?太原千里之眼智能科技有限公司给出了答案。作为山西人工智能公司排名靠前的技术供应商,其核心产品GEO AI 搜索排名正在重塑企业获客逻辑。一、为什么选择 GEO AI 搜索…

作者头像 李华
网站建设 2026/8/20 0:13:34

LLM判断检索文档能否回答问题的探索

大模型判断检索到的文档列表能否回答问题,是通过一套概率计算、模式匹配和语义理解完成的。 简单来说,LLM不是确定,而是推断文档列表是否有可能包含了回答问题的信息。 这里尝试基于网络资料,梳理LLM判断文档能否回答问题常用流…

作者头像 李华
网站建设 2026/8/13 19:59:41

Kotlin对象表达式与声明全解析

Kotlin 对象表达式与对象声明Kotlin 中的对象表达式(Object Expressions)和对象声明(Object Declarations)是两种创建匿名对象和单例对象的机制。它们分别用于不同的场景,但都能简化代码结构并提高灵活性。对象表达式对…

作者头像 李华
网站建设 2026/7/14 16:26:03

腾讯的 Skills社区 真的好用吗?这几个点不会,坑你没商量

引言:寄予厚望的本土化AI技能社区,体验却不尽如人意随着AI Agent(圈内人称“龙虾”)热潮席卷而来,腾讯近期正式推出了专为国内用户打造的AI Skills社区——SkillHub,官方宣称其解决了海外ClawHub下载慢、全…

作者头像 李华
网站建设 2026/7/14 16:26:04

使用 Docker 部署 DotNetBrowser 应用程序

DotNetBrowser 是一个基于 Chromium 的 .NET WebView。它允许您在 .NET 桌面应用中嵌入现代网页内容,并通过代码对其进行控制。 与普通的 .NET 应用不同,运行 Chromium 的应用依赖一些系统级组件,这些组件并不包含在您的项目中。应用可能在您…

作者头像 李华
网站建设 2026/7/14 16:26:06

Python IDE配置lumapi

1. 参考这篇Lumerical Python API配置-一步到位-CSDN博客 注意第二行是你的解释器(python&anaconda)的\python目录下的DLLs文件 具体示例如下:以vscode的python解释器为例 测试代码如下,如果可以成功运行并打开lumerical即可…

作者头像 李华