三剑客老大awk的相关应用(干货)

1、案例环境1:

mkdir -p /server/files/
cat >>/server/files/reg.txt<<EOF
Zhang Dandan    41117397   :250:100:175
Zhang Xiaoyu    390320151  :155:90:201
Meng  Feixue    80042789   :250:60:50
Wu    Waiwai    70271111   :250:80:75
Liu   Bingbing  41117483   :250:100:175
Wang  Xiaoai    3515064655 :50:95:135
Zi    Gege      1986787350 :250:168:200
Li    Youjiu    918391635  :175:75:300
Lao   Nanhai    918391635  :250:100:175
EOF
m 第一列是姓氏
m 第二列是名字
m 第一第二列合起来就是姓名
m 第三列是对应的ID号码
m 最后三列是三次捐款数量
1.1取出第二列包含以i结尾的行


1.2取出第二列包含以i结尾的行并只显示第一列,第二列和第三列

1.3姓氏是Zhang的人,显示他的第二次捐款金额及她的名字


1.4显示所有ID号码最后一位数字是1或5的人的全名


1.5显示所有人的全名,以姓,名的格式显示,如Meng,Feixue
在awk里面,花括号里面的双引号里面写什么就显示什么,花括号里面的逗号代表空格


1.6显示Xiaoyu的捐款.每个值时都有以$开头.如$520$200$135






④gsub(/:/,"$");将:替换成$,后面添加print命令,中间需要加上;隔开两个命令 ,都在花括号里面


案例2:
创建环境:
head /etc/passwd >/oldboy/passwd.txt
2.1调换/oldboy/passwd.txt文件的第1列和最后一列的位置(不用修改文件内容)
2.1.1使用sed调换



2.1.2使用awk调换,两杯酒水的对换, $0当前行记录,tmp也可以使用其他的


-vOFS=“:“,{}外面必须是单引号

3.1 BEGIN{}里面的内容 在awk读取文件之前运行,所以后面不用加文件名


3.2 END{}里面的内容会在awk读取文件之后运行
统计该文件有几行空行,i=i+1等于i++---计数


3.3 i=i+$1 ---求总和



求1+...+100的总和


案例3
4.1统计access.log中 第9列是200的数量



归纳总结干货不容易,请大家关注并点赞一下,非常感谢支持!

原文地址:https://blog.51cto.com/xiyuxingxia/2382908

时间: 2024-10-06 07:10:26

三剑客老大awk的相关应用(干货)的相关文章

三剑客老大&quot;awk&quot;名不虚传——你所不知道的awk

三剑客老大"awk"名不虚传 --你所不知道的awk 我们都知道awk做统计非常方便,但是你知道awk也可以用于替换么?我们可以用awk实现sed的功能,甚至比sed更精确(因为可以精确到列). 例如:将配置文件的第5行和第7行注释: [[email protected] ~]# awk 'NR>4&&NR<8{gsub(/^/,"#")}{print NR,$0}' passwd.txt 1  root:x:0:0:root:/root

三剑客老大awk相关案例

awk {}花括号里面是动作,外面是条件 取行 NR==(number record)若不输入数字,默认所有行2.取列---列与列之间想隔开,加",或者其他符号"显示oldboy.txt的第4行的第1列 第2列和第4列 awk默认空格是分隔符号,所以后面的第四列一起,一个字符号默认是一刀,除非加了+,将[]+变成整体案例 先指定分隔符号为空格和逗号-F"[ ,]",一个符号相当于一刀取出IP地址比较大小NF是最后一列查看磁盘使用率 既有数字和百分号识别不了 原文地址

linux 三剑客老大-awk

1,取指定行的指定列 [[email protected] oldboy]# cat aa.txt 1 a2 b3 c4 d5 e6 f7 g8 h9 i10 j11 k12 l13 m14 n [[email protected] oldboy]# awk '{if(NR>=5 && NR<=10) print $1}' aa.txt#me:NR代表行号,&&代表并且5678910[[email protected] oldboy]# awk '{if(NR&

漫漫运维路——文本处理三剑客之awk基础

awk即gawk,是一款在Linux中实现文本格式化输出的文本处理工具,在Linux中与文本过滤工具grep和文本行编辑器sed共同组成Linux中的文本处理三剑客. awk在处理文本时以行为单位,读入整行数据后以指定的分隔符对行进行切片,然后再针对切片后的数据进行处理.如下图所示: 文本经过指定的分隔符进行切片后再对每一片进行处理,然后在根据设定的动作对处理后的文本执行动作,而切片后的文本如果只想引用一部分也可以使用变量进行引用,其引用的各个变量如下表所示: 变量 指代 $0.$N 当前处理行

不看绝对后悔的Linux三剑客之awk实战精讲

一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel).处理的数据可以是一个或多个文件,可以是来自标准输入,也可以通过管道获取标准输入,awk可以在命令行上直接编辑命令进行操作,也可以编写成awk程序来进行更为复杂的运用.本章主要讲解awk命令的运用 1.2 awk环境简介 [[email protected] ~]# cat /etc/redhat-release 

文本处理三剑客之awk(报告生成器)

文本处理三剑客之awk(报告生成器) awk是一款强大的报告生成器,不同于sed和grep,它的侧重点是如何把文本信息更好的展示出来,常用与统计和格式化输出.awk相当于微型的shell,有着自己一套语法结构,例如:循环结构,数组,条件判断,函数,内置变量等功能. awk在我认为简直就是文本处理时打劫放火一大利器. 例如取出/etc/passwd中的第一列. [root@CentOS6 ~]# awk -F: '{print $1}' /etc/passwd root bin daemon ad

文本三剑客之awk进阶篇

此篇主要讲解awk控制语句,捎带说明getline和NR_FNR命令的使用.其中会用到awk基础知识,若有疑惑,可点击文本三剑客之awk基础篇进行翻阅. 示例文件 以下为通篇会用到的几个示例文件: [[email protected] awk_file]# cat file.txt name yu shu wai rick 80 86 90 long 68 89 78 jack 66 60 82 [[email protected] awk_file]# cat file.txt1 name y

1.12-linux三剑客之awk用法详解

1.12 linux三剑客之awk用法详解 内容: 1. awk执行过程 2. awk命令格式 3. awk用法 4. awk数组 第1章 awk执行过程 一直读取到文件的最后一行 第2章 awk '找谁{干啥}' '模式{动作}' 模式 pattern   动作  action 第3章 awk中什么可以作为模式 正则表达式 比较表达式    NR>10 范围模式 特殊模式BEGIN{}和END{} awk支持正则中的特殊符号 3.1 正则表达式 测试文件/server/files/reg.tx

shell三剑客之awk(包括sort排序和uniq工具)

shell三剑客之awk 在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被广泛应用于 Shell 脚本,完成各种自动化配置任务. awk 所使用的命令格式如下所示,其中,单引号加上大括号"{}"用于设置对数据进行的处理动作.awk 可以直接处理目标文件,也可以通过"-f"读取脚本对目标文件进行处理. awk工具