首页 > 系统相关 >Linux文本文件管理003

Linux文本文件管理003

时间:2024-06-01 14:00:55浏览次数:32  
标签:sort head uniq 003 awk 文本文件 Linux rn 排序

★排序、去重、统计★

1)排序

sort -n按照数值排序
-r降序排列

2)去重

uniq 过滤相邻、重复的行
-c 对重复行计数

3)统计

wc 统计文件中的字节数、单词数、行数
-l 显示行数

今天通过使用grep、awk、cut指令和上面几个选项提取文本文件的信息

方法1:

[root@localhost nginx]# cat access.log | awk '{print $1}'| sort -rn | uniq -c | sort -rn | head 
Cat 查看文本文件
| awk '{print $1}' 通过管道| 将cat信息传输给awk
{print $1}限制每一行的第一个字段
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行

方法2:

[root@localhost nginx]# awk '{print $1}' access.log | sort -rn | uniq -c | sort -rn | head 
 awk '{print $1}' access.log 通过awk指令打印每一行的第一字符
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行

方法3:

[root@local-host nginx]# cut -d' ' -f1 access.log | sort -rn | uniq -c | sort -rn | head 
# cut -d' ' -f1 access.log  -d’ ’指定字符分隔符为单个空格
-f1 每行提取第一个字符
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行

方法4:

[root@localhost nginx]# grep -oP '^\S+' access.log | sort | uniq -c | sort -nr | head 
grep -oP '^\S+' access.log 
-P开启perl正则表达式    
-o 只输出匹配的内容
'^\S+'   ^字符串定位行首     \S 匹配任何非空白字符 包括字母、数字、标点符号。 除了空格、制表符、换行符等空白字符之外的任何字符     +  一个量词  \S+匹配一个或者多个非空白字符
| sort -rn 将之前的提取数排序
| uniq -c 去重 -c对于重复的数进行计数
| sort -rn 对于之前去重的数再次进行排序
| head 显示前10行

方法5:

[root@localhost nginx]# awk '{ip[$1]++} END {for (i in ip) print ip[i], i | "sort -rn | head" }' access.log 
awk '{ip[$1]++}     awk  读取每一行    
{ip[$1]++}   ip[] 关联数组名为ip
$1限定第一个字段
++ 检查第一字段 若已存在会自动加1 ,若不存在,会自动创建初始化为1
print ip[i], i打印出每个IP地址及其出现次数。注意,这里先打印次数再打印IP地址,以匹配最终排序的需求,代表每一行ip出现的次数
sort -rn | head先将awk传输的数据排序再将数据前10打印出来

在这里插入图片描述
今天先分享到这里,希望能够帮助到大家……

标签:sort,head,uniq,003,awk,文本文件,Linux,rn,排序
From: https://blog.csdn.net/2402_83480790/article/details/139279834

相关文章

  • Linux进程管理
    在Linux系统中,进程管理是一个重要的任务。以下是一些常用的进程管理指令总结:1.ps:显示当前系统中的进程信息。可以使用psaux来查看所有用户的进程信息,包括详细的状态、CPU使用率等。psaux2.top:实时显示系统中的进程信息,包括进程ID、用户、CPU使用率、内存使用情况等......
  • 【Linux】如何利用linux项目自动化构建工具-make/Makefile以及vim编辑器构建两个小程
    1.倒计时小程序首先我们Linux中创建目录test1,该目录中包含了makefile文件,和main.c文件(该文件是源文件用于编写倒计时程序的代码)再进行依赖方法和依赖关系的确定: 利用vim编辑器编辑makefile文件:注意:在依赖方法前面加@的作用是,执行make指令后,将对应的依赖方法不显示在屏幕......
  • Linux基础 (九):Linux 进程复制与替换
       各位看官,本篇博客干货满满,请耐下心来,慢慢吸收!哈哈哈,内功一定会大增!目录一、printf函数输出问题1.1第1个示例代码1.2第2个示例代码1.3分析与结论二、主函数参数介绍三、复制进程fork3.1进程的基本概念3.2fork()方法3.3fork方法使用示例3.4 面试题fo......
  • 在Linux中,如何进行系统资源的监控?
    在Linux系统中,监控系统资源对于确保系统稳定运行、及时发现并解决问题至关重要。以下是一些常用的命令和工具,用于监控CPU、内存、磁盘I/O以及其他关键系统资源。1.CPU使用情况top:提供了一个实时的视图,展示了当前正在运行的进程及其CPU和内存使用情况。你可以按不同的列排序,如C......
  • 在Linux中,如何进行硬件性能监控?
    在Linux中,硬件性能监控是确保系统高效运行和及时发现硬件问题的重要环节。以下是一些常用的命令和工具,用于监控CPU、内存、磁盘、网络接口以及特定硬件组件(如温度、电压等)的状态。1.CPU监控top和htop:实时显示各进程的CPU使用情况,有助于识别CPU使用率高的进程。mpstat(多处理......
  • 在Linux中,如何进行网络服务的监控?
    在Linux中,网络服务的监控涉及多个方面,包括但不限于网络连接状态、带宽使用情况、网络接口性能、以及服务的可用性和响应时间。以下是一些常用的命令和工具,帮助你进行网络服务的监控:1.网络接口状态与带宽监控ifconfig或ipaddr:查看网络接口的基本信息,如IP地址、子网掩码、MAC......
  • 在Linux中,如何进行容器技术的应用?
    在Linux中应用容器技术主要是通过Docker或类似的容器管理系统来实现的。容器技术允许你将应用程序及其依赖打包在轻量级、可移植的容器中,实现快速部署和隔离运行。以下是使用Docker进行容器技术应用的步骤:1.安装Docker首先,需要在Linux系统上安装Docker。对于基于Debian的系统(如......
  • 在Linux中,如何进行虚拟化技术的应用?
    在Linux中应用虚拟化技术,主要涉及搭建和管理虚拟化环境,以实现资源的高效利用和灵活部署。以下是在Linux上使用KVM(Kernel-basedVirtualMachine)这一常见虚拟化技术的应用步骤:1.检查硬件虚拟化支持确保你的CPU支持硬件虚拟化(如Intel的VT-x或AMD的AMD-V)。使用以下命令检查:egre......
  • 为什么windows使用系统缓存时要使用同步阻塞IO,而linux不用?
    在Windows使用系统缓存时,默认情况下会使用同步阻塞I/O,而在Linux中则没有这种强制要求。这个差异主要归结于两个操作系统的设计哲学、文件系统架构、以及缓存管理策略的不同。Windows的设计原因历史设计选择:Windows的文件系统和I/O子系统的设计是基于较早期的操作系......
  • Linux
    一、主流操作系统不同领域的主流操作系统,主要分为以下这么几类:桌面操作系统、服务器操作系统、移动设备操作系统、嵌入式操作系统。接下来,这几个领域中,代表性的操作系统是那些? 1)桌面操作系统 操作系统特点 Windows用户数量最多 MacOS操作体验好,办公人士首选......