Linux awk案例

目录

  • 1. 查询时间超过2000毫秒的请求
  • 2. 查询指定列组合出现的次数
  • 3. 统计所有文件的大小
  • 4. 获取大于指定大小的文件名,并按照从大到小排序
  • 5. grep指定字段后,使用awk列转行
  • 6. 查询第四个字段等于指定值的内容


1. 查询时间超过2000毫秒的请求

✅log: 20231119-1.log

2023:11:19 09:07:10 SPLEND=2000 请求开始 110 END
2023:11:19 09:07:11 SPLEND=1000 请求开始 120 END
2023:11:19 09:07:12 SPLEND=3000 请求开始 119 END
2023:11:19 09:07:13 SPLEND=4000 请求开始 156 END
2023:11:19 09:07:14 SPLEND=4000 请求开始 157 END

⏹查询时间超过2000毫秒的请求

grep -a SPLEND ./20231119-1.log | awk 'BEGIN {FS="="} {if($NF>2000) print $0}'

👇结果

2023:11:19 09:07:10 SPLEND=2000 请求开始 110 END
2023:11:19 09:07:12 SPLEND=3000 请求开始 119 END
2023:11:19 09:07:13 SPLEND=4000 请求开始 156 END
2023:11:19 09:07:14 SPLEND=4000 请求开始 157 END

2. 查询指定列组合出现的次数

✅log: 20231119-2.log

你好 世界 110120 AAA
世界 你好 112123 BBB
你好 世界 343434 CCC
世界 你好 343434 DDD
世界 你好 565656 WWW
hello world 23232 EEE
hello world 23423 FFF
world hello 23232 GGG
world hello 34344 HHH

⏹查询第2列和第1列组合之后,出现的次数

cat ./20231119-2.log | awk '{cnt[$2" "$1]+=1;} END {for (i in cnt) print i,cnt[i]"回"}'

👇结果

world hello 2回
hello world 2回
你好 世界 3回
世界 你好 2回

3. 统计所有文件的大小

⏹有如下文件

fengyehong@ubuntu:~/uwsgi-2.0.18/core$ ls -l ./m*.c
-rw-rw-r-- 1 fengyehong fengyehong 32766 Feb  9  2019 ./master.c
-rw-rw-r-- 1 fengyehong fengyehong 11714 Feb  9  2019 ./master_checks.c
-rw-rw-r-- 1 fengyehong fengyehong  7616 Feb  9  2019 ./master_events.c
-rw-rw-r-- 1 fengyehong fengyehong 49900 Feb  9  2019 ./master_utils.c
-rw-rw-r-- 1 fengyehong fengyehong 31952 Feb  9  2019 ./metrics.c
-rw-rw-r-- 1 fengyehong fengyehong  6147 Feb  9  2019 ./mount.c
-rw-rw-r-- 1 fengyehong fengyehong 11774 Feb  9  2019 ./mule.c
  • total:定义了一个变量
  • $5:第5个字段,即文件大小的字段。
  • 通过{total += $5}累加完成之后,在END{ }代码块中将结果打印出来
ls -l ./m*.c | awk '{total += $5} END {print "总大小: ", total/1024, "KB"}'

在这里插入图片描述


4. 获取大于指定大小的文件名,并按照从大到小排序

  • if($5 > 100000):指定获取大于100000byte的文件
  • -k5,5:使用第5列作为排序的关键字段
  • n:使用数字顺序排序
  • r:逆向排序,从大到小排序
# 从小到大排序
ls -l ~/uwsgi-2.0.18/core | awk '{if($5 > 100000) print $0}' | sort -k5,5n
# 从大到小排序
ls -l ~/uwsgi-2.0.18/core | awk '{if($5 > 100000) print $0}' | sort -k5,5nr

在这里插入图片描述


5. grep指定字段后,使用awk列转行

info.txt

110120 SPLREQUEST name=東川雄一 AAA memberID=1 tel=080-1111-1111 SPLEND ExecTime=200 ResultCode=200
123456 SPLREQUEST name=西村祐二 BBB memberID=2 tel=080-2222-2222 SPLEND ExecTime=300 ResultCode=200
123444 SPLREQUEST name=南山裕三 CCC memberID=3 tel=080-3333-3333 SPLEND ExecTime=200 ResultCode=200
123434 SPLREQUEST name=北岡優四 memberID= tel=080-4444-4444 SPLEND ExecTime=400 ResultCode=200
345345 SPLREQUEST name=田中様 EEE memberID=5 tel=080-5555-5555 SPLEND ExecTime=500 ResultCode=200
674545 SPLREQUEST name=竹下様 FFF memberID=6 tel=080-6666-6666 SPLEND ExecTime=400 ResultCode=200

🤪需求:从文件中获取第一个字段,name字段,tel字段,ExecTime字段,并转为一行

  • 获取每个字段可以使用 -e配置项,然后配合正则表达式\S*获取非空内容
  • -o:仅获取匹配到的内容,不获取行的其他内容
  • 仅使用grep命令得到的结果都不在一行上,而应该是每4行一组
  • 使用awk命令的ORS指定文本输出时的换行符
  • ORS = (NR % 4 == 0) ? "\n" : ","
    • 如果当前行号不是4的倍数,还不该换行,将换行符指定为,,不会引起换行,从而实现列转行。
    • 如果当前行号是4的倍数,说明每4行已经变为一行,此时将换行符置为\n,实现没一行有4个字段。
grep -a -o -e "^\S*" -e "name=\S*" -e "tel=\S*" -e "ExecTime=\S*" ./info.txt | awk 'ORS = (NR % 4 == 0) ? "\n" : ","'

在这里插入图片描述


6. 查询第四个字段等于指定值的内容

info.txt

110120	SPLREQUEST	name=東川雄一	994	memberID=1	tel=080-1111-1111	SPLEND	ExecTime=200	ResultCode=200
123456	SPLREQUEST	name=西村祐二	889	memberID=2	tel=080-2222-2222	SPLEND	ExecTime=300	ResultCode=200
123444	SPLREQUEST	name=南山裕三	994	memberID=3	tel=080-3333-3333	SPLEND	ExecTime=200	ResultCode=200
123434	SPLREQUEST	name=北岡優四	110	memberID=	tel=080-4444-4444	SPLEND	ExecTime=400	ResultCode=200
345345	SPLREQUEST	name=田中様	110	EEE	memberID=5	tel=080-5555-5555	SPLEND	ExecTime=500	ResultCode=200
674545	SPLREQUEST	name=竹下様	114	FFF	memberID=6	tel=080-6666-6666	SPLEND	ExecTime=400	ResultCode=200
  • 需求:查询第四个字段的值为994所在行的内容
  • 每个字段使用Tab分隔,所以使用-F'\t'
awk -F'\t' '$4 == "994" {print $0}' ./info.txt | nkf -w8

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1523244.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 24.04 VMware里面设置静态ip上网

1.VMware里面设置网络为桥接模式 2.Ubuntu里面检查网卡名称 [~] ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:…

2024表白墙PHP网站源码

2024表白墙PHP网站源码 正常安装 访问域名即可直接进入安装程序 更新安装 请先备份数据库以及updata文件目录 以防出现意外 以及复制后台“基本配置内容” 然后覆盖目录 访问域名再次进入安装程序 在数据库安装完成后不要进行下一步并删除install文件目录 再将“基本配置内容”…

ElasticSearch添加xpack认证

一、新增xpack依赖包 由于xpack包需要从es的私服仓库下载&#xff0c;在data-platform-parent工程下的pom.xml新增如下&#xff1a; <properties><x-pack-transport.version>5.5.3</x-pack-transport.version> </properties><repositories><…

数据结构基本知识

一、什么是数据结构 1.1、组织存储数据 ---------》内存&#xff08;存储&#xff09; 1.2、研究目的 如何存储数据&#xff08;变量&#xff0c;数组....)程序数据结构算法 1.3、常见保存数据的方法 数组&#xff1a;保存自己的数据指针&#xff1a;是间接访问已经存在的…

摄影竞赛系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;教师管理&#xff0c;学生管理&#xff0c;辅导员管理&#xff0c;项目信息管理&#xff0c;作品信息管理&#xff0c;留言板管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#…

【Leetcode】1-5

1 两数之和 1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 和为目标值 target 就是在找 target - nums[i] 利用 哈希表 查找只需要 O(1) class Solution {public int[] twoSum(int[] nums, int target) {HashMap<Integer, Integer> hm new HashMap<>();…

钢铁百科:NM360钢板材质、NM360机械性能、NM360韧性焊接性能

一、NM360钢板材质&#xff1a; NM360是一种高强度耐磨钢板&#xff0c;具有良好的综合机械性能和耐磨性能。它通常用于制造各种机械设备的耐磨部件&#xff0c;如挖掘机斗齿、破碎机锤头、磨煤机叶片等。NM360钢板的化学成分和热处理工艺被精心设计&#xff0c;以确保其在恶劣…

【Python知识宝库】深入理解Python中的字符串操作

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言一、字符串的创建1.1 使用引号创建字符串1.2 使用字符串函数创建 二、字符串的修改2.1 更改字符串的大小写2.2 拼…

心电调试笔记

原理图设计 注意事项 引脚连接检查&#xff1a;确保每个元器件与芯片引脚连接正确是基础&#xff0c;错误的连接可能导致系统无法正常工作。未连接引脚标识&#xff1a;对于未使用的引脚&#xff0c;虽然不连接但应标识为非使用状态&#xff0c;以免混淆或引起误操作。测试点设…

学学vue-1

vue 0 安装 装node.js&#xff0c;以及cnpm&#xff08;npm超时或者被屏蔽&#xff0c;安装cnpm国内镜像&#xff09; 查看安装版本&#xff08;是否安装成功&#xff09; node -v 安装成功之后也会安装npm npm -v cnpm镜像 npm install -g cnpm --registryhttp://registry.np…

哈希:哈希函数 | 哈希概念 | 哈希冲突 | 闭散列 | 开散列

&#x1f308;个人主页&#xff1a; 南桥几晴秋 &#x1f308;C专栏&#xff1a; 南桥谈C &#x1f308;C语言专栏&#xff1a; C语言学习系列 &#x1f308;Linux学习专栏&#xff1a; 南桥谈Linux &#x1f308;数据结构学习专栏&#xff1a; 数据结构杂谈 &#x1f308;数据…

GEE APP——Bellingcat 雷达影像监测平台分析

简介 许多军用雷达在开启时会干扰开源卫星图像。 一个新工具可以让任何人监控这些雷达部署的时间和地点。 该资源库包含该工具的源代码。 下面是该工具使用时的截图,其中有五个标注组件,我们将逐一查看。 在此示例中,该工具以驻扎在沙特阿拉伯达曼的 MIM-104 爱国者 PAC-2 …

早上醒来嗓子干、喉咙痛、咳嗽……快用这个润养好物,给嗓子做个spa,让身体润起来~

进入秋季&#xff0c;很多人出现了眼睛干涩、大便干燥、嘴唇干裂、咽喉疼痛等症状&#xff0c;虽说这些还能够忍受&#xff0c;但它却影响了正常的饮食和休息。 秋季气候干燥&#xff0c;外界燥邪侵犯肺部&#xff0c;易伤津液&#xff0c;肺失滋润&#xff0c;清肃失司&#x…

探讨马丁格尔策略应用的3问和昂首平台的3答

问&#xff1a;为什么在使用马丁格尔策略时要如此谨慎?毕竟最大的市场波动可能根本不会发生。 答&#xff1a;让我们以一个具体的例子来说明这个问题。假设我们进行交易&#xff0c;计算出一个小于最大预期值的市场动量&#xff0c;比如说这个值为90便士。试想&#xff0c;如…

Acunetix v24.8 发布,新增功能概览

Acunetix v24.8 发布&#xff0c;新增功能概览 Acunetix v24.8 (Linux, Windows) - Web 应用程序安全测试 Acunetix | Web Application Security Scanner 请访问原文链接&#xff1a;https://sysin.org/blog/acunetix/&#xff0c;查看最新版。原创作品&#xff0c;转载请保…

Linux---文件(1)---初识文件

目录 预备知识 文件操作接口 打开文件接口 重定向与文件操作关系 "w"方式与重定向 “a”方式与追加重定向 写入文件接口 读取文件接口 系统调用接口 参数解析 预备知识 我们知道&#xff0c;创建出一个空文件也要在内存中占空间。 文件文件内容文件属性 操…

网络安全服务基础Windows--第12节-域与活动目录

工作组 在Windows环境中配置⼯作组相对简单&#xff0c;适合⼩型⽹络环境&#xff0c;如家庭或⼩型办公室⽹络。⼯作组通过简单的⽹络共享和本地管理来实现资源共享&#xff0c;⽽不依赖于中央控制的服务器。 ● 定义&#xff1a;⼯作组是⼀种对等⽹络模型&#xff0c;在这种…

总结一下windows电脑字体模糊的优化方案

问题&#xff1a;谷歌浏览器上页面显示的字体非常细&#xff0c;有点费眼睛了&#x1f47e; 解决方案&#xff1a; 方案1&#xff1a;手动调整ClearType文本。方案2&#xff1a;英伟达显卡控制面板->管理3d设置->关闭全局平滑FXAA&#xff08;如果某个软件需要使用平滑处…

【vue css】background设置背景图片不显示问题

问题&#xff1a; 如上图所示&#xff0c;添加背景图片页面没有显示 解决&#xff1a; 添加background-position: center center 即可显示 但是不知道为什么添加这个属性就可以&#xff0c;求大神解惑