Linux之AWK使用

linux下awk的使用+练习 Awk是一种非常好的语言,同时有一个非常奇怪的名称。在本系列文章中,DanielRobbins 将使您迅速掌握 awk编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真正的高级awk 演示程序。 捍卫 awk    在本系列文章中,我将使您成为精通 awk 的编码人员。我承认,awk 并没有一个非常好听且又非常“时髦”的名字。awk 的 GNU 版本(叫作 gawk) 阅读详情

awk是一种用于处理数据和生成报告的编程语言,也就是样式扫描和处理语言。

一般的使用格式是:

awk '{pattern + action}' {filenames}

pattern指在每一行中进行匹配的条件,action指针对符合条件的行进行的操作,filenames是输入的文件名。

例子:

假设data文件中有以下数据:

1 donald 305 20050129

2 chin 102 20040129

3 mark 304 20040229

下面对这个文件进行操作:

awk '{print $1, $2, $3, $4}' data

输出:

1 donald 305 20050129

2 chin 102 20040129

3 mark 304 20040229

awk '{print $1"\t", $2"\t", $3"\t", $4}' data

输出:

1 donald 305 20050129

2 chin    102   20040129

3 mark    304 20040229

awk '/donald/ {print $4}' data

匹配当data文件中包含字符串"donald"的行,输出第4列的值:

20050129

awk '/donald|chin/ {print $1, $2}' data

这里的"|"应该是或的作用,而不是管道,输出:

1 donald

2 chin

awk '/a[rl]/ {print $1, $2}' data

兼容perl的正则表达式,匹配包含"ar"或"al"的列,输出:

1 donald

3 mark

awk '/a[rl]/ {print $1, $2, $3+1}' data

给第三列加上1再输出:

1 donald 306

3 mark 305

awk '/a[rl]/ {print $1, $2} {print $3+1}' data

匹配只对第一对花括号产生作用,输出:

1 donald

306

103

3 mark

305

awk 'FS="n" {print $1}' data

使用"n"而不是空格做为分隔符,输出:

1 do

2 chi

3 mark 304 20040229

awk 'FS="n" {OFS="-"} {print $1, $2}' data

1 do-ald 305 20050129

2 chi- 102 20040129

3 mark 304 20040229-

awk 'FS="n" {OFS="-"} {print NR, $1, $2}' data

使用NR变量,num of row,即行号,输出:

1-1 do-ald 305 20050129

2-2 chi- 102 20040129

3-3 mark 304 20040229-

awk '{x=x+$3} {print NR, $3, x}' data

使用变量进行累加计算,输出:

1 305 305

2 102 407

3 304 711

awk '{x=x+$3} END {print NR, $3, x}' data

使用BEGIN和END在处理之前或之后显示结果,输出:

3 711

awk '{x=x+$3} {print NR, $3, x | "sort -nr"}' data

在awk内使用管道进行排序,输出:

3 304 711

2 102 407

1 305 305

cat command

{x=x+$3}

{print NR, $3, x | "sort -nr"}

awk -f command data

将指定写在文件中,输出:

3 304 711

2 102 407

1 305 305

20100818新增对AWK的理解


测试数据文件内容
cat irs.dat
nisj gbicc shanghai
zhaopeng zhikong changcun
zhouyuefei shanlian hefei
--显示以' '分隔的第二行,第一、二列内容

 

awk -F ' ' 'NR==2 {print $1,$2}' irs.dat


说明:内建变量FS保存输入域分隔符的值,默认是空格或tab。我们可以通过-F命令行选项修改FS的值。
--匹配含有字符串'zhou'的行

 

awk '/zhou/{print $0}' irs.dat


--匹配长度大于20的行号
 

awk 'length($0)>20 {print NR}' irs.dat


注:
print可以改为printf,不过后者不输出换行符。NR:已经读出的记录数,NF:当前记录中的字段个数
关于分隔符,下面两个等效:

 

awk 'FS="n" {print $0}' data
awk -F n '{print $0}' data


二者等效,以n为分隔符输出

cst使用局部网格加密,手动加密,special设置等方法合理网格布局加速仿真速度 在CST中,计算复杂模型或者阵列的时候往往需要耗费大量仿真时间,除了使用更高性能的电脑或工作站进行仿真,合理对CST的仿真网格进行适当设置也是必不可少的一步。CST中网格设置影响模拟的精度和速度,因此花时间理解网格过程是很重要的。 阅读详情

相关推荐

STM32_WS2811驱动

STM32的WS2811驱动

健身房 2839

Linux awk 用法

一、零 awk,经常用于格式化输出,也就是将数据按照我们想要的方式来显示,并且可以做一些基本的统计工作。 1. 它的运作模式是“预处理+逐行处理+最终处理”。一般我们只用“逐行处理”比如对于满足条件的某些行,我们打印某某列。通过指定分隔符,我们很容易的对列进行操作。 2. 预处理来定义变量,逐行处理来修改变量,最终处理来打印变量。 ...

布袋和尚 4364

Ferry工单平台部署

ferry工单平台部署

运维求生之路 1897

linux awk用法详解

awk是专门为文本处理设计的编程语言,是一门数据驱动的编程语言,与sed类似都是以数据驱动的【行处理】软件,主要用于【数据扫描】、【过滤】、【统计汇总】工作,数据可以来自【标准输入】、【管道】或者【文件】。awk在20世纪70年代诞生与贝尔实验室。现在使用的版本是1988年发布的Gnu awk。示例代码如下运行结果如下图:运行说明:输出2行是因为文件:/tmp/hosts一共2行。默认以【空格】、【换行符】、【制表符】作为分隔符,使用-F可以指定分隔符。

格子衫双肩包的专栏 7041

ECB oracle——attack

基于ECB oracle的攻击方案前言什么是ECB方案步骤1.确定块大小和明文大小2.暴力破解求明文脚本代码 前言 参考文章:Breaking ECB by prepending your own message. 环境地址:ECB oracle 什么是ECB 分组密码中AES的一种模式(其他还有:CBC、ECB、CTR、OCF、CFB)如图每一块加密是分开的。 方案步骤 1.确定块大小和明文大小 先用一个字符"a"去encrypt返回32个字节的数据(64位16进制)依次用"aa",“aaa”…去en

weixin_44617902的博客 1310

张力控制速度闭环控制算法

这个算法的核心思想是通过比较实际速度和期望速度的差异来调整控制信号,以达到稳定的速度控制。比例项用于直接根据误差调整输出,积分项用于积累误差并进行补偿,微分项用于预测误差的变化趋势并进行调整。张力控制是在许多工程和工业应用中非常重要的一个过程,它涉及到通过调节力的大小来实现稳定的工作状态。通过合理设置比例、积分和微分系数,并结合实际系统的特性进行调试和优化,可以实现准确稳定的张力控制。速度闭环控制算法通过比较实际速度和期望速度之间的差异,并根据差异调整系统的输出,以保持速度稳定。

LiJavascript的博客 1301

Linux下的awk用法详解

Linux下的awk用法详解一、awk介绍二、awk的语法三、awk常见用法四、awk其他用法五、awk语言特性 一、awk介绍 1.AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。 2.AWK拥有自己的语言: AWK 程序设计语言,它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报

jks212454的博客 818

pyecharts在jupyter notebook中不能够渲染图表问题。

在使用jupyter notebook中使用pyecharts绘制可视化图表的时候,发现图表不能渲染到页面中,生成的html是没问题的,本文主要解决在jupyter notebook中不能渲染这个问题。

猿小白的博客 1161

linux中的awk使用详解

AWK 是一种强大的文本处理工具,诞生于 20 世纪 70 年代的贝尔实验室,由 Alfred Aho、Peter Weinberger 和 Brian Kernighan 三位创始人共同开发,其名称取自三人姓氏的首字母。AWK 专门用于文本扫描、过滤、统计和格式化输出,支持从标准输入、管道或文件中读取数据。在 Linux 系统中,常用的版本是 GAWK(GNU AWK),它是 AWK 的自由软件版本,完全兼容 AWK 和 NAWK。

qq_55656748的博客 2002

/home 挂载点无法访问 怎么解决 指令可以进入Home目录 du: 无法访问“*“: 输入/输出错误

本文介绍了Linux系统中XFS文件系统损坏的故障排查与修复方法。当/home挂载点出现I/O错误时,通过dmesg发现XFS日志错误和磁盘I/O报错,判断可能是文件系统逻辑损坏或硬件故障。解决方案包括:1)尝试卸载分区;2)使用xfs_repair工具进行预检查和正式修复;3)在极端情况下使用-L参数强制清空日志;4)若存在硬件故障,建议优先进行数据抢救并更换硬盘。最后强调重要数据应先备份,再考虑系统重建。

专注于计算机研发知识和资讯分享 151

【原创】关于西门子S120 的电气图纸设计

我们首先要了解一下模块的基本信息:SINAMICS 功率模块 PM240-2 三相交流380-480V+10/-10% 47-63Hz;至此,我们选择的驱动系统配置的资料都已经查找完毕,接下来就是根据每个部件的功能接口和我们需要实现的功能画出接线连接图,这样关于伺服电机控制,硬件部分设计就完成了。2)FSA - FSC 型功率模块 PM240-2 的屏蔽连接板外形尺寸图,所有数据以毫米(英寸)为单位。1)FSA 型功率模块 PM240-2 的外形尺寸图,所有数据以毫米(英寸)为单位。

Qinmingyue13的博客 2637

Linux - awk命令详解

目录1. awk命令1.1 awk工作原理1.2 awk语法1.2.1 awk完整语法示例:1.2.1 awk工作流程1.3 指定分隔符1.3.1 -F 指定分隔符1.3.2 指定输出分隔符2. free命令2.1 free命令各项含义 2.1.1 什么时候会使用交换分区?2.1.2 内核参数优化2.2 常用选项-m 以M为单位显示内存的使用情况-h 以人类能读懂的格式显示3.0 awk各种组合运用3.1 awk进行计算3.2 awk命令的引用shell变量 3.3

qq_48391148的博客 6万+

CKS-CN考试之路----02

其实我们根据题目也可以知道秘钥是叫clever-cactus。稍作等待后,确认pod的状态,如果是1/1基本就没问题了。这步不一定做.目的是确定秘钥的名字。

Q先生 654

LINUX 使用awk提取文本

问题 本案例要求使用awk工具完成下列过滤任务: 练习awk工具的基本用法 提取本机的IP地址、根分区使用率 格式化输出/etc/passwd文件中的用户名、UID、宿主目录信息 格式化输出passwd文件内容时,要求第一行为列表标题,最后一行提示一共已处理文本的总行数,如图-1所示。 图-1 步骤 实现此案例需要按照如下步骤进行。 步骤一:awk文本过滤的基本用法 1)基本操作方法 格式:...

LYJ_man的博客 6432

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Linux awk 使用

awk 命令简单记录

罗小黑嘛 1727

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux中awk工具的使用

Linux中awk工具的使用

devcy的博客 204

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

linux命令 awk_如何在Linux上使用awk命令

linux命令 awkFatmawati Achmad Zaenuri/ShutterstockFatmawati Achmad Zaenuri / Shutterstock On Linux,awk is a command-line text manipulation dynamo, as well as a powerful scripting language. Here’s an in...

culintai3473的博客 834

Linux shell awk中print及变量使用

Linux处理文本工具 grep: 过滤文本内容 sed: 编辑文本内容 awk: 显示文本 awk: Aho Peter Weinberger Kernighan 报告生成器,以特定的条件查找文本内容,在以特定的格式显示 awk命令的格式: # awk [option] 'script' file1 file2... # awk [option]...

南宫乘风-Linux运维-虚拟化容器-Python编程 ownit.top 3万+

linux的awk使用

awk统计password文件中,登陆shell为“/sbin/nologin”的用户个数 [root@localhost ~]# cat passwd | grep "/sbin/nologin"bin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/...

weixin_30681615的博客 918

linux系统awk命令使用详解

Pattern是Awk命令的匹配模式,用于匹配输入数据中的文本。如果Pattern匹配成功,则执行Action,Action是Awk命令的动作,用于处理输入数据。如果没有指定文件名,则Awk命令会读取标准输入流中的数据。在本篇文章中,我们将详细讲解Awk的使用方法,帮助读者了解这个工具的基本原理和常见用法。Awk命令还支持使用变量。例如,我们可以定义一个变量,然后在命令中使用它。例如,以下命令将定义一个名为num的变量,并将其设置为10。这个命令会输出filename文件中的第二列数据,以逗号作为分隔符。

zzy7075的专栏 597

Linux下awk的简单使用

把整数部分视作一个列,点是一个分隔符,小数部分是一个列,一个列就是一个域。

ljy的博客 468

linux中awk的使用

当然也可以配合输出重定向相机使用,如cat aaa.tcl | awk '{print $3}' | sort -u使用。3.第五点中内置变量,若引入除NR和NF,其他的需要用双引号。的行,再通过内置变量进行计数。的行数,可利用正则表达式匹配包含。2.awk后结的顺序不可以乱。5.在 Linux 中使用。4.print一定在{}内。

weixin_48518726的博客 433

Linux之awk的进阶使用

awk是一门编程语言,用于语言处理,用于对文本进行截取效果好,在对一些文本进行分类统计时也很方便,本章讲了awk的基础和进阶的使用,提到了awk格式,awk的选项,awk的内置函数,如substr()字符串截取、split()切片等等,还有awk的流控,如if判断、for循环,还提到了awk数组,以上都搭配有举例,欢迎大家参考学习

fruitless的博客 959

linux awk命令使用实例

AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。 使用方法 awk '{pattern + action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pat

xin.wang的博客 2563

linux如何调试awk脚本,Linux下如何让 awk 使用 Shell 变量

Linux下如何让 awk 使用 Shell 变量当我们编写 shell 脚本时,我们通常会在脚本中包含其它小程序或命令,例如 awk 操作。对于 awk 而言,我们需要找一些将某些值从 shell 传递到 awk 操作中的方法。那么如何让 awk 使用 Shell 变量呢?兄弟连Linux培训接下来为大家介绍一下:有两种可能的方法可以让 awk 使用 shell 变量:1. 使用 Shell 引...

weixin_33983809的博客 388

Linux下如何让 awk 使用 Shell 变量

Linux下如何让 awk 使用 Shell 变量 当我们编写 shell 脚本时,我们通常会在脚本中包含其它小程序或命令,例如 awk 操作。对于 awk 而言,我们需要找一些将某些值从 shell 传递到 awk 操作中的方法。那么如何让 awk 使用 Shell 变量呢?兄弟连Linu...

chuji7262的博客 198
上一篇: 期货高频的手法
下一篇: UltraEdit正则表达式使用
BabyFish13
博客等级 码龄12年 2730粉丝 953原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值