linux awk命令怎么用

linux中,awk命令是文本数据处理工具,适合格式化文本文件,对文本文件进行更复杂的加工处理、分析,语法“awk  [option]  ‘pattern[action]’  file …”。awk具备强大的文本格式化能力,比如对一堆看起来没有什么规律的日志文件,文本文件等,通过awk命令之后,格式化输出为专业的可以做为应用级数据分析的样式。

linux awk命令怎么用

本教程操作环境:linux7.3系统、Dell G3电脑。

Linux 系统中有一个功能更加强大的文本数据处理工具,就是 awk。它诞生于 20 世纪 70 年代末期,这也许是它影响了众多 Linux 用户的原因之一。

曾有人推测 awk 命令的名字来源于 awkward 这个单词。其实不然,此命令的设计者有 3 位,他们的姓分别是 Aho、Weingberger 和 Kernighan,awk 就取自这 3 为大师姓的首字母。

awk具备强大的文本格式化能力,比如对一堆看起来没有什么规律的日志文件,文本文件等,通过awk命令之后,格式化输出为专业的可以做为应用级数据分析的样式;

awk像是一门编程语言,支持条件判断,数组,循环等诸多的功能;

linux三剑客

grep,擅长单纯的查找或匹配文本内容;

sed,擅长文本编辑,处理匹配到的文本内容;

awk,适合格式化文本文件,对文本文件进行更复杂的加工处理、分析;

awk理论基础

1、awk语法

awk  [option]  'pattern[action]'  file ...awk   参数       条件动作           文件

1.png

action 是指动作,awk擅长文本格式化,且能输出格式化后的结果,因此最常用的动作就是 print 和 printf

2、awk处理文本内容模式

awk默认以空格为分隔符,且多个空格也识别为一个空格,作为分隔符;awk按行处理文件,一行处理完毕之后,再处理下一行;awk可以根据用户指定的分隔符去工作,没有指定,则默认为空格;

一、awk内置变量

内置变量 说明

$n指定分隔符后,当前的第n个列所在的字段$0完整的一行记录FS字段分隔符,默认是空格NF(Number of fields)字段分隔后,当前一共多少个字段NR(Number of records)当前记录数,行数

更多的内置变量,可通过 man awk命令进行查看

简单案例展示

提前准备一个文本,内容如下

2.png

1、输出第二列内容

awk '{print $2}' alx.txt

3.png

2、输出多列内容

直接在第一步后面的基础上追加,中间用 “,” 分割

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

4.png

3、查看第三行内容

考察对NR的使用,NR表示第N行记录的模式匹配

awk 'NR==3{print $0}' alx.txt

5.png

输出多行

awk 'NR==5,NR==6{print $0}' alx.txt

6.png

4、输出从第3到第五行,并显示行号

awk 'NR==3,NR==5 {print NR,$0}' alx.txt

7.png

5、自定义输出内容

某些情况下,需要给每一列添加类似于excel的表头信息,就可以考虑使用awk的自定义输出;

awk '{print "第一列: "$1,"第二列: "$2}' alx.txt

8.png

需要注意的是大括号外面的使用 ’ 单引号,括号里面的使用双引号

二、awk参数

参数 说明

-F指定分隔字段符-v定义或修改一个awk内部变量-f从脚本文件中读取awk命令

上文谈到,awk默认的字段分隔符为空格,但是像下面这样的文本,以 # 为分隔符,就需要用到自定义分隔符;

9.png

1、显示第一列和第二列内容

awk -F "#" '{print $1,$2}' zcy2.txt

10.png

2、显示文件第一列,倒是第一列,和倒数第二列的内容

awk '{print $1,$(NF-1),$(NF-2)}' alx.txt

11.png

3、取出本机的IP地址

12.png

使用awk的方式获取的话,如果以空格为分隔符,我们发现目标字段在第二行的第二列,使用下面的命令即可,看起来,比起sed和grep命令似乎更简单;

ifconfig eth0 | awk 'NR==2{print $2}'

13.png

4、取出密码文件中的第一列和最后一列

考察对自定义输入分隔符的使用,可以看到,下面的文本文件中,可以考虑使用 : 进行分割;

14.png

awk -F ':' '{print $1,$NF}' pwd2.txt

15.png

三、OFS输出分隔符

通过上文的学习,我们知道awk命令执行后,默认采用空格分割字段,而这个空格就是默认的输出分割符,

单在某些情况下,为了将数据展示的效果更加醒目一些,就可以使用OFS的自定义输出分隔符;

仍然以上面的密码文本为例,输出第一列和最后一列的字段;

awk -F ':' -v OFS=' *** ' '{print $1,$NF}' pwd2.txt

该表默认输出分隔符,直接在awk后面使用: -v OFS=‘自定义输出分隔符’

16.png

四、awk变量

awk参数

参数 说明

-F指定分隔字段符-v定义或修改一个awk内部变量-f从脚本文件中读取awk命令

对于awk来讲,变量分为:内置变量和自定义变量

awk内置变量

参数 说明

FS输入字段分隔符,默认为空白字符OFS输出字段分隔符,默认为空白字符RS输入记录分隔符,指定输入时的换行符ORS输出记录分隔符,输出时用指定符号替换换行符NF当前行的字段个数,字段数量NR行号,当前处理文本行的行号FNR各文件分别计数的行号FILENAME当前文件名ARGC命令行参数个数ARGV数组,保存的是命令行所给定的各个参数

比较常用的内置变量包括: NR,NF,FNR

FILENAME 使用

FILENAME 为awk的内置变量,通过下面这个命令,可以看到在每行记录之前,输出了当前文件名称;

awk 'NR==1,NR==3{print FILENAME,$0}' alx.txt

17.png

ARGV使用

先来看下面这条命令的执行结果

awk 'NR==1,NR==3{print ARGV[0],ARGV[1],$0}' alx.txt

18.png

可以发现,在输出的每一行记录前面,拼上了 awk 和 alx.txt这两个字段,这两个字段就是这行命令整体解析出来的2个内置参数;

自定义变量

看下面这条命令输出效果,通过-v参数,可以自定义变量进行参数传递;

awk -v myname="zcy" 'BEGIN{print "我的名字是?" ,myname}'

19.png

五、awk格式化输出

在上文,我们接触的是awk的输出功能,主要使用了 print 这个进行输出,它只能对文本进行简单的输出,但是并不能美化或者修改输出格式;

printf 格式化输出

如果对C语言有过了解的同学,对printf 并不陌生,使用这个命令(函数)可以对文本进行格式化输出;

printf与print的几点区别

printf 需要指定format;format 用于指定后面的每个 item输出格式;printf 语句不会自动打印换行符; n ; print 默认添加换行符;

如下,假如我们直接使用 printf 这样操作,看下效果

awk '{printf $0}' alx.txt

20.png

明显来说,把所有内容都输出到同一行了,这时候,就需要使用 printf的格式化输出来控制;

awk '{printf "%sn", $0}' alx.txt

21.png

再看一个案例,使用 printf 将文本中的每一列添加前置输出

awk '{printf "第一列:%s   第二列:%s   第三列:%sn" ,$1,$2,$3}' alx.txt

22.png

六、awk模式pattern

上文了解到,awk的语法如下 :

awk [option] ‘pattern[action]’ file …

而且我们了解到,awk是按行处理文本,以上都是关于 print 相关,接下来,聊聊pattern相关的内容;

在pattern中,有个比较常见的pattern,BEGIN和END;

BEGIN 模式是处理文本之前需要执行的动作;END模式是处理完成所有的行之后执行的操作;

awk 'BEGIN{print "小明在学linux"}'

23.png

或者下面这样

awk 'BEGIN{print "小明在学linux"} {print $0}END{print "处理结束"}' alx.txt

24.png

注意:BEGIN 和 END分别放到处理文本内容前后即可

awk如果不指定模式是按行处理,如果指定了模式,只有符合模式的才会被处理

awk常用模式

关系运算符 说明

<小于=大于等于~匹配正则!~不匹配正则

1、打印前三行的文本内容

awk 'NR<=3{print $0}' alx.txt

25.png

2、匹配密码文本中含有 zcy 的行

awk '/^zcy/{print $0}' pwd.txt

26.png

3、格式化输出 /etc/passwd 的部分字段

awk -F ":" 'BEGIN{print"用户名ttt字段1tt     字段2tt     权限"} {printf "user:%-20s%-20s%-20s%-20sn", $1,$4,$5,$7}' pwd.txt

27.png

4、找出pwd文件中nologin的用户

28.png

awk '//sbin/nologin$/{print NR,$0}' pwd.txt

29.png

5、找出 下面这个区间的文本行

30.png

awk '/^daemon/,/^operator/{print NR,$0}' pwd.txt

31.png

相关推荐:《Linux视频教程》

以上就是linux awk命令怎么用的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月30日 05:17:48
下一篇 2025年11月30日 06:58:28

相关推荐

  • 从哪里下载币安交易App 2025官网最新版安装指南

    币安作为全球领先的加密货币交易平台,其官方App是进行数字资产交易、管理和投资的必备工具。为了确保您下载到安全可靠的币安App,并享受到最佳的用户体验,我们特别为您准备了这份2025年最新版官方App下载安装指南。 本文将提供官方App下载链接,让您免去搜索的烦恼,直接下载安装。通过本指南,您将轻松…

    2025年12月8日
    000
  • 比特币app交易软件有哪些?比特币app十大排名软件推荐

    随着加密货币市场的日益成熟,选择一款安全、便捷、功能强大的比特币App至关重要。无论是初入币圈的新手,还是经验丰富的交易者,都需要一款合适的App来管理自己的数字资产,进行交易、存储和了解市场动态。下面,我们精心挑选了十款在用户体验、安全性、功能性等方面表现卓越的比特币App,助您在数字货币的世界里…

    2025年12月8日 好文分享
    000
  • 币安交易所官方APP入口2025 安卓版v2.101.5安装教程

    币安交易所官方app是进行数字货币交易的重要工具,它提供了便捷的交易体验、实时的市场数据以及丰富的交易功能。为了确保您下载到的是安全可靠的官方版本,我们特别提供了官方app的直接下载链接。本文将详细介绍如何下载并安装币安交易所官方app安卓版v2.101.5。推荐通过本文提供的链接进行下载,以避免下…

    2025年12月8日
    000
  • 一文了解 Circle 上市看加密资产机构化驱动下的价值重构

    在这一背景下,加密概念股迎来了新的投资机会。 美股市场中,Coinbase 股价在高位震荡,5 月 22 日最高达 271.95 美元。Circle 于 6 月 5 日上市当天因暴涨多次触发熔断,最终较发行价上涨约 167%。港股方面,香港《稳定币条例》提振市场,华兴资本控股因早期投资 Circle…

    2025年12月8日
    000
  • Gate芝麻开门交易所APP官方版 gate安卓版 v7.6.1 安装包

    gate芝麻开门交易所app是一款专为数字货币交易爱好者打造的移动应用。它提供了一个安全、便捷的平台,让用户可以随时随地进行数字资产的交易和管理。gate芝麻开门app拥有丰富的交易品种、实时行情数据、专业的k线图分析工具以及完善的风控体系,旨在为用户提供最佳的交易体验。现在,让我们一起了解如何下载…

    2025年12月8日
    000
  • 喜讯稳定币发行商Tether收购加拿大Elemental Altus近32%股权 旨在强化黄金储备

    稳定币发行商Tether把目光从链上移向黄金实体。 Tether Investments SA de CV12日公告,已支付约1.2155亿加元(约1.216亿美元)收购加拿大上市公司Elemental AltusRoyalties Corp. 78,421,780股普通股,占比约31.9%。消息发…

    2025年12月8日
    000
  • PAAL是什么币种?PAAL AI (PAAL) 价格预测 2025-2030年

    随着基于人工智能的加密货币发展势头强劲, paal ai (paal)也备受关注。该代币在去中心化人工智能基础设施和智能自动化领域拥有实用价值,在瞬息万变的市场中展现出强劲势头。根据技术分析和整体加密货币前景预测,paal 2025 年的平均价格为 0.1256 美元,宏观因素和技术创新将加剧其潜在…

    2025年12月8日
    000
  • 欧易交易所APP正版安装2025 okx安卓版官网

    欧易交易所app是数字货币交易的重要工具,为用户提供便捷的交易体验。为了让您能够安全、快速地安装欧易交易所app,享受流畅的交易服务,我们特别准备了这份详细的安装教程。本教程提供的是官方app正版下载链接,您可以直接通过本文提供的链接下载,无需担心安全问题,避免下载到非官方版本带来的风险。 欧易交易…

    2025年12月8日
    000
  • 币安binance官网APP2025 v2.101.5 安卓版交易所入口

    币安 binance 官网 app 2025 v2.101.5 安卓版交易所为广大数字货币爱好者提供了便捷的交易平台。这款app不仅拥有强大的交易功能,还提供了实时的行情数据、专业的分析工具以及安全可靠的交易环境。为了让您能够快速、安全地体验币安app的强大功能,我们为您准备了详细的下载安装教程,并…

    2025年12月8日
    000
  • 零手续费交易究竟意味着什么?为何如此重要?

    目录 什么是加密货币交易费?交易费用基础知识费用对利润的实际影响什么是零费用交易?加密货币零费用的演变为什么零费用交易很重要?1. 提高所有策略的利润率2. 鼓励敏捷和自信的交易3. 为新来者提供公平的竞争环境4. 最大化高频交易者和机器人交易者的投资回报率MEXC 零费用模式如何运作零费用是否意味…

    2025年12月8日
    000
  • Definitive(EDGE)是什么?值得投资吗?EDGE实用性与代币经济学详解

    目录 简介项目类别什么是Definitive (EDGE)?历史与发展使命与愿景本质概述项目特点EDGE概述EDGE的核心应用和实用性项目概览如何购买EDEG币?常见问题(FAQ)问题1:EDGE是一个好的投资吗?问题2:我可以在其他交易所交易EDGE吗?问题3:是什么让Definitive与众不同…

    2025年12月8日 好文分享
    000
  • 欧易交易所APP正版2025安卓版 欧易okx官方版最新链接

    欧易交易所app是数字货币交易爱好者的必备工具,它提供了一个安全、便捷的平台,让用户可以随时随地进行数字资产的管理和交易。2025年最新安卓版本的欧易okx app带来了诸多优化和新功能,旨在提升用户体验,并提供更全面的数字资产服务。本教程将详细介绍如何下载和安装欧易okx app 2025安卓版,…

    2025年12月8日
    000
  • 欧易交易所APP最新版2025安卓官方版入口

    欧易交易所app是数字货币交易的重要工具,无论您是新手还是资深玩家,都离不开一个安全、便捷的交易平台。2025年最新版的欧易交易所app在用户体验、安全性能和交易功能上都进行了全面升级,旨在为用户提供更流畅、更高效的数字资产交易服务。为了帮助大家快速上手,本文将提供欧易交易所app最新安卓官方版的安…

    2025年12月8日
    000
  • Go! SmartChain AI(GSMC)币是什么?GSMC代币经济学概述

    目录 Go! SmartChain AI(GSMC)币是什么?Go! SmartChain AI 和 GSMC 有何区别Go! SmartChain AI想要解决什么问题?1. 400万亿美元资产的可及性挑战2.区块链基础设施碎片化3. DeFi 中 AI 集成有限4. 普遍基本服务缺口Go! Sm…

    2025年12月8日 好文分享
    000
  • DeFi热潮回归?永续合约、空投红利与DEX生态共振,Web3金融正在重启

    2024年下半年,随着宏观流动性逐步回暖与以太坊生态持续扩展,去中心化金融(defi)领域迎来一波强势回温。总锁仓量(tvl)反弹超35%,多个赛道如永续合约协议、跨链dex、稳定币协议和空投驱动的用户增长正同步爆发,令市场隐约嗅到一场新周期的前奏。 DeFi热潮回归?永续合约、空投红利与DEX生态…

    2025年12月8日
    000
  • 模拟交易app排行榜 全球虚拟币模拟交易APP前十汇总

    随着加密货币市场的日益火爆,越来越多的人希望参与其中,但直接投入真金白银又担心风险过高。这时,虚拟币模拟交易APP就成为了一个理想的入门选择。它们允许用户在零风险的环境下体验交易过程,学习市场规律,积累经验。下面,我们就为大家精心挑选了全球范围内最受欢迎的十大虚拟币模拟交易APP,助您在数字货币的世…

    2025年12月8日 好文分享
    000
  • 炒币入门APP推荐 新手入门炒币十大APP推荐2025

    对于跃跃欲试想要进入加密货币世界的新手来说,选择一个安全可靠、操作便捷的交易平台至关重要。2025年,加密货币市场更加成熟,各种交易平台层出不穷。为了帮助大家快速上手,我们精心挑选了以下十款最适合新手入门的炒币APP,它们在用户体验、安全性、交易品种、学习资源等方面都表现出色,能有效降低新手的学习曲…

    2025年12月8日 好文分享
    000
  • b安交易所app下载最新版本v2.103.8官方安卓

    币安交易所App是进行数字货币交易的重要工具,拥有便捷的交易界面、实时的行情数据以及丰富的交易功能。为了确保您能够安全、快速地下载并安装最新版本的币安交易所App,本教程将提供官方App下载链接,并详细指导您完成安装过程。请务必按照以下步骤操作,以避免下载到非官方版本,保障您的资产安全。本教程提供的…

    2025年12月8日
    000
  • 币安交易app官网入口在哪 币安app最新版本如何获取

    币安binance是全球知名的加密货币交易平台之一,为用户提供安全、可靠的数字资产交易服务。对于希望参与加密货币交易的新手用户来说,找到一个准确无误的官方入口至关重要。本文旨在提供币安binance的最新官方入口链接,指导用户如何通过正规渠道访问官网并完成账户注册。点击本文提供的官方入口链接,即可便…

    2025年12月8日
    000
  • 币安app官网下载链接在哪 币安交易平台最新版安装入口

    币安App官方下载渠道包括官网和应用商店。一、下载步骤:1.访问币安官网并点击“下载”或“App”选项;2.根据设备类型选择iOS或Android版本。或1.打开应用商店;2.搜索“Binance”;3.认准官方认证标志下载。二、安装步骤:Android设备:1.找到.apk文件;2.点击安装;3.…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信