Linux中awk工具的使用

linux中,awk工具是处理文本数据的强大工具。以下是关于awk工具的详细介绍和使用方法。

目录

awkawk的用法awk中字符的含义print 打印字符匹配格式化输出举例

awk

awk是一种强大的文本分析工具,相对于grep的查找和sed的编辑,awk在数据分析和生成报告方面尤为突出。简单来说,awk会逐行读取文件,并以空格作为默认分隔符将每行分割成片段,然后对这些片段进行各种分析处理。awk是行处理器,在处理大型文件时不会出现内存溢出或处理缓慢的问题,通常用于格式化文本信息。

awk处理过程:依次对每一行进行处理,然后输出。

awk的用法

awk的基本使用格式如下:

awk 参数 'BEGIN{} // {action1;action2} END{}' 文件名

参数说明:

-F:指定分隔符-f:调用脚本-v:定义变量BEGIN{}:初始化代码块,在处理每一行之前执行,主要用于引用全局变量和设置FS分隔符//:匹配代码块,可以是字符串或正则表达式{}:命令代码块,包含一条或多条命令,多条命令用 ; 隔开END{}:结尾代码块,在处理所有行之后执行,主要用于最终计算或输出总结信息

示例:统计 /etc/passwd 文件中包含 root 行的总数

awk 'BEGIN{X=0}/root/{X+=1}END{print "I find",X,"root lines"}' /etc/passwd

Linux中awk工具的使用

awk中字符的含义

黑点工具 黑点工具

在线工具导航网站,免费使用无需注册,快速使用无门槛。

黑点工具 18 查看详情 黑点工具 $0:表示整个当前行$1:每行的第一个字段NF:字段数量变量NR:每行的记录号,多文件记录递增FNR:与NR类似,但多文件记录不递增,每个文件从1开始t:制表符n:换行符FS:在BEGIN时定义分隔符RS:输入的记录分隔符,默认为换行符~:包含!~:不包含==:等于,必须全部相等,精确比较!=:不等于,精确比较&&:逻辑与||:逻辑或+:匹配时表示1个或多个/0-9+/:两个或两个以上数字/0-9*/:一个或一个以上数字OFS:输出字段分隔符,默认也是空格,可以改为其他ORS:输出的记录分隔符,默认为换行符-F [:#/]:定义了三个分隔符

print 打印

print 是awk打印指定内容的主要命令,也可以使用 printf

示例:

awk '{print}' /etc/passwd == awk '{print $0}' /etc/passwdawk '{print " "}' /etc/passwd # 不输出passwd的内容,而是输出相同个数的空行awk '{print "a"}' /etc/passwd # 输出相同个数的a行,每行只有一个a字母awk -F: '{print $1}' /etc/passwd # 输出字段1awk -F: '{print $2}' /etc/passwd # 输出字段2awk -F: '{print $3,$6}' OFS="t" /etc/passwd # 输出字段3和6,以制表符作为分隔符awk -F: '{print $2}' /etc/passwd # 输出字段2,分行输出awk -F: '{print $2}' /etc/passwd # 输出字段2,中间以**分隔awk -F: '{print "name:"$3}' /etc/passwd # 自定义格式输出字段3awk -F: '{print NF}' /etc/passwd # 显示每行有多少字段awk -F: 'NF>2{print}' /etc/passwd # 将每行字段数大于2的打印出来awk -F: 'NR==5{print}' /etc/passwd # 打印出/etc/passwd文件中的第5行awk -F: 'NR==5||NR==6{print}' /etc/passwd # 打印出/etc/passwd文件中的第5行和第6行awk -F: 'NR!=1{print}' /etc/passwd # 不显示第一行awk -F: '{print > "1.txt"}' /etc/passwd # 输出到文件中awk -F: '{print}' /etc/passwd > 2.txt # 使用重定向输出到文件中

字符匹配

示例:

awk -F: '/root/{print}' /etc/passwd # 打印出文件中含有root的行awk -F: '/$A/{print}' /etc/passwd # 打印出文件中含有变量A的行awk -F: '!/root/{print}' /etc/passwd # 打印出文件中不含有root的行awk -F: '/root|tom/{print}' /etc/passwd # 打印出文件中含有root或者tom的行awk -F: '/mail/,/mysql/{print}' test # 打印出文件中含有 mail*mysql 的行,*代表有0个或任意多个字符awk -F: '/^2[7]*/{print}' test # 打印出文件中以27开头的行,如27,277,27gff 等等awk -F: '$1~/root/{print}' /etc/passwd # 打印出文件中第一个字段是root的行awk -F: '($1=="root"){print}' /etc/passwd # 打印出文件中第一个字段是root的行,与上面的等效awk -F: '$1!~/root/{print}' /etc/passwd # 打印出文件中第一个字段不是root的行awk -F: '($1!="root"){print}' /etc/passwd # 打印出文件中第一个字段不是root的行,与上面的等效awk -F: '$1~/root|ftp/{print}' /etc/passwd # 打印出文件中第一个字段是root或ftp的行awk -F: '($1=="ftp"){print}' /etc/passwd # 打印出文件中第一个字段是root或ftp的行,与上面的等效awk -F: '$1!~/root|ftp/{print}' /etc/passwd # 打印出文件中第一个字段不是root或不是ftp的行awk -F: '($1!="ftp"){print}' /etc/passwd # 打印出文件中第一个字段不是root或不是ftp的行,与上面等效awk -F: '{if($1~/mail/) {print $1} else {print $2}}' /etc/passwd # 如果第一个字段是mail,则打印第一个字段,否则打印第2个字段

格式化输出

示例:

awk '{printf "%-5s %.2d",$2}' test # printf 表示格式输出,%-5s 表示长度为5个字符的左对齐字符串,%.2d 表示两位小数的数字

举例

显示 /etc/passwd 中含有 root 的行

awk '/root/' /etc/passwd

: 为分隔,显示 /etc/passwd 中每行的第1和第7个字段

awk -F ":" '{print $1,$7}' /etc/passwd

: 为分隔,显示 /etc/passwd 中含有 root 的行的第1和第7个字段

awk -F ":" '/root/{print $1,$7}' /etc/passwd

: 为分隔,显示 /etc/passwd 中以 root 开头行的第1和第7个字段

awk -F ":" '/^root/{print $1,$7}' /etc/passwd

: 为分隔,显示 /etc/passwd 中第3个字段大于999的行的第1和第7个字段

awk -F ":" '$3>999{print $1,$7}' /etc/passwd

: 为分隔,显示 /etc/passwd 中第7个字段包含 bash 的行的第1和第7个字段

awk -F ":" '$7~/bash/{print $1,$7}' /etc/passwd

: 为分隔,显示 /etc/passwd 中第7个字段不包含 bash 的行的第1和第7个字段

awk -F ":" '$7!~/bash/{print $1,$7}' /etc/passwd

: 为分隔,显示 $3>999 并且第7个字段包含 bash 的行的第1和第7个字段

awk -F ":" '$3>999 && $7~/bash/{print $1,$7}' /etc/passwd

: 为分隔,显示 $3>999 或第7个字段包含 bash 的行的第1和第7个字段

awk -F ":" '$3>999 || $7~/bash/{print $1,$7}' /etc/passwd

Linux中awk工具的使用

以上就是Linux中awk工具的使用的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/298882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月5日 00:01:19
下一篇 2025年11月5日 00:05:52

相关推荐

  • PHP调用AI智能图像分析 PHP自动化检测与分类

    选择ai服务提供商需考量准确率、价格、功能支持、api易用性及数据安全;2. php高效处理大量图像应采用异步任务、批量请求、流式读取、缓存响应、图像优化及并发处理;3. 提升ai分析准确率可通过选合适模型、数据增强、微调、集成学习、结果后处理、人工标注与持续反馈实现,最终在精度、速度与成本间取得平…

    2025年12月10日 好文分享
    000
  • 如何用PHP接入AI智能客服 PHP实现自动回复与语义理解

    要使用php接入ai智能客服,核心在于通过php与ai平台api交互,实现自动回复与语义理解。1.选择ai平台,如openai、google cloud ai或百度文心一言;2.注册并获取api密钥;3.使用guzzle等http客户端发送请求;4.php接收用户输入并构建json请求体;5.发送至…

    2025年12月10日 好文分享
    000
  • 如何用PHP结合AI实现文本纠错 PHP语法检测与优化

    要实现php结合ai进行文本纠错与语法优化,需按以下步骤操作:1.选择适合的ai模型或api,如百度、腾讯api或开源nlp库;2.通过php的curl或guzzle调用api并处理返回结果;3.在应用中展示纠错信息并允许用户选择是否采纳;4.使用php-l和php_codesniffer进行语法检…

    2025年12月10日 好文分享
    000
  • 如何让PHP容器支持自动构建 PHP环境持续集成CI配置方式

    要让%ignore_a_1%支持自动构建,核心在于配置持续集成(ci)流程。1. 使用 dockerfile 定义 php 环境,包括基础镜像、扩展安装、依赖管理和权限设置;2. 配置 gitlab ci 等 ci/cd 工具,通过 .gitlab-ci.yml 文件定义 build、test 和 …

    2025年12月10日 好文分享
    000
  • 如何用PHP搭建社交分享功能 PHP分享接口集成实战

    在php中搭建社交分享功能的核心方法是通过动态生成符合各平台要求的分享链接。1.首先获取当前页面或指定的url及文章信息;2.使用urlencode对参数进行编码;3.根据各平台协议拼接生成分享链接;4.在前端展示链接供用户点击分享;5.动态生成页面og标签优化分享内容展示;6.务必对用户输入进行转…

    2025年12月10日 好文分享
    000
  • 如何用PHP构建日志管理系统 PHP日志采集与分析工具

    选择日志记录方式:初期可用php内置error_log(),项目扩大后务必切换至monolog等成熟库,支持多handler和日志级别,确保日志含时间戳、级别、文件行号及错误详情;2. 设计存储结构:小量日志可文件存储,大量或需分析则选数据库,结构化数据用mysql/postgresql,半结构化/…

    2025年12月10日 好文分享
    000
  • PHP调用AI智能语音助手 PHP语音交互系统搭建

    用户语音输入通过前端javascript的mediarecorder api捕获并发送至php后端;2. php将音频保存为临时文件后调用stt api(如google或百度语音识别)转换为文本;3. php将文本发送至ai服务(如openai gpt)获取智能回复;4. php再调用tts api…

    2025年12月10日 好文分享
    000
  • Twilio通话保持与恢复:会议模式与独立呼叫腿处理

    本文详细阐述了在Twilio中实现通话保持(hold)与恢复(unhold)的两种主要方法。首选方案是利用Twilio的会议(Conference)功能,通过更新会议参与者资源轻松实现通话保持和恢复,并可自定义保持音乐。另一种方法是处理独立的呼叫腿(call legs),这需要更复杂的TwiML逻辑…

    2025年12月10日
    000
  • MySQL/Laravel中关系数据的高级条件查询与过滤

    本文旨在探讨如何在Laravel框架中,利用Eloquent ORM对关联数据进行高级条件查询与过滤,解决在数据库关系中实现“条件连接”的需求。文章将澄清MySQL中外键的实际作用,并详细讲解如何通过Eloquent的with方法结合闭包函数,对预加载的关联模型应用特定的WHERE子句,从而灵活地筛…

    2025年12月10日
    000
  • 如何用PHP结合AI实现自动摘要 PHP长文快速生成摘要

    使用php结合ai实现自动摘要的核心是调用ai服务api,如openai或云平台nlp服务;2. 具体步骤包括获取api密钥、准备纯文本、用curl发送post请求、解析json响应并展示摘要;3. 摘要能高效筛选信息、提升可读性、辅助内容管理并适应碎片化阅读;4. 选模型需考虑摘要类型(抽取式或生…

    2025年12月10日 好文分享
    000
  • 如何用PHP搭建数字名片平台 PHP名片设计与分享功能

    用户与权限管理:实现注册、登录、找回密码及多级权限控制,利用php框架自带认证系统确保安全;2. 名牌创建与编辑模块:提供多模板选择、字段自定义(json存储)、富文本排版与实时预览,提升交互体验;3. 名片数据存储与管理:数据库结构化存储内容与样式,api保障数据增删改查一致性;4. 分享与传播机…

    2025年12月10日 好文分享
    000
  • 将哈希值转换为十进制:PHP实现方法详解

    本文将详细介绍如何将哈希函数(例如 HMAC_SHA256)生成的哈希值中的前四个字节转换为0到255之间的十进制值。我们将通过PHP代码示例演示具体步骤,并提供代码优化建议,以便更简洁高效地完成转换。 首先,让我们回顾一下原始代码: <?php$K = "95ac4ed338c4b…

    2025年12月10日
    000
  • 将哈希值转换为十进制数值:PHP 教程

    本教程旨在指导开发者如何将哈希函数(例如 HMAC_SHA256)的输出结果中的前四个字节转换为十进制数值(0-255)。通过示例代码和详细解释,我们将展示如何使用 PHP 实现这一转换过程,并提供一些优化技巧。重点在于理解 unpack 函数的用法以及其在字节处理中的作用。 在许多安全相关的应用中…

    2025年12月10日
    000
  • 如何用Docker限制PHP容器资源 PHP服务内存与CPU控制策略

    要限制php容器的资源,需使用docker的cgroup功能,通过命令行参数或docker-compose.yml配置。1.内存限制:使用–memory指定最大内存,–memory-swap控制内存+swap总量,–memory-reservation设软限制。2…

    2025年12月10日 好文分享
    000
  • PHP中将哈希值的字节转换为十进制值

    本文档旨在指导开发者如何将哈希函数(如HMAC_SHA256)的输出结果中的前四个字节转换为十进制数值(0-255)。我们将通过PHP代码示例,详细解释如何提取、解包哈希值,并展示如何简化提取前四个字节的过程。理解这些步骤对于实现某些密码学算法,如Provably Fair算法,至关重要。 哈希值与…

    2025年12月10日
    000
  • 如何用PHP开发短链接生成器 PHP短链接存储与跳转

    开发php短链接生成器需建立长短url映射关系,核心是数据库存储(如mysql表含id、long_url、short_code、created_at);2. 短码生成推荐base62编码自增id以避免冲突且高效,或随机字符串+数据库唯一性校验重试机制;3. 高性能重定向依赖short_code字段数…

    2025年12月10日 好文分享
    000
  • 如何通过PHP搭建在线教育平台 PHP课程管理与收费系统

    搭建php在线教育平台,核心功能模块包括:1.用户管理系统,实现多角色注册登录、权限区分及通知功能;2.课程内容管理系统(cms),支持课程创建、编辑、发布及多媒体内容管理;3.学习进度追踪与互动系统,记录学习进度并提供问答评论功能;4.支付与订单系统,集成支付网关并管理订单状态及退款流程;5.通知…

    2025年12月10日 好文分享
    000
  • 如何用Docker保持PHP环境一致 PHP容器化本地与生产部署

    使用docker保持php环境一致的核心方法是构建包含所有依赖的镜像并在任何地方运行。具体步骤包括:1. 编写dockerfile,选择合适的php基础镜像(如php:8.1-fpm-alpine),安装系统依赖和php扩展,设置工作目录并复制项目文件,安装composer依赖,自定义php配置,暴…

    2025年12月10日 好文分享
    000
  • PHP实现内容审核系统变现 PHP自动化审核技术应用

    php内容审核系统变现的核心是将风险管理能力产品化,通过api服务按调用量收费、saas订阅模式提供平台、定制化解决方案提升利润率;2. 技术突破点在于集成第三方ai服务实现分级过滤与按需调用,构建可配置规则引擎提升灵活性,并通过人工复审反馈优化模型准确率;3. 系统架构需采用异步消息队列处理任务、…

    2025年12月10日 好文分享
    000
  • 如何配置PHP环境支持Composer PHP依赖管理器安装与使用方法

    composer要求php版本至少为7.2,推荐使用7.4或更高,1. 确保php cli可用且版本合适,windows用户需将php路径添加到系统path,macos用户可用homebrew安装并配置,linux用户通过包管理器安装php-cli;2. 安装必要扩展如json、mbstring、z…

    2025年12月10日 好文分享
    000

发表回复

登录后才能评论
关注微信