当前位置: 首页 > news >正文

linux常用命令介绍 05 篇——实际应用篇(用 cut、uniq等统计文档里每个关键词出现的次数)

linux常用命令介绍 05 篇——实际应用篇(用 cut、uniq等统计文档里每个关键词出现的次数)

  • 1. 先导文章——关于行过滤 和 列截取
  • 2. 关于单个统计单词个数
    • 2.1 grep
    • 2.2 wc
  • 3. 统计文档中每个关键词出现的次数
    • 3.1 先看文档内容 + 需求
      • 3.1.1 文档内容
      • 3.1.2 需求
    • 3.2 分析并实现需求

1. 先导文章——关于行过滤 和 列截取

  • 前几天被问到一个问题,之前没用过,感觉挺尴尬的,束手无策,今天抽空去了解一下,其实就两三个命令的事,不过感觉也挺有意思的,顺便记录下来,供大家参考。

  • 看这篇文章之前用到了其他工具,如果需要的话,可以看看下面的文章:

    linux常用命令介绍 03 篇——常用的文本处理工具之grep和cut(以及部分正则使用).

2. 关于单个统计单词个数

2.1 grep

  • 上篇文章里有介绍,可以使用grep -c的命令进行统计,如下:
    grep -c 'www.google.com' http.txt
    
    在这里插入图片描述

2.2 wc

  • wc 统计使用选项如下:
    1. wc -l:统计单词出现的行次数
    2. wc -w:统计单词出现的次数
  • 使用例子如下:
    grep 'www.google.com' http2.txt | wc -w
    grep 'www.google.com' http2.txt | wc -l
    cat http2.txt | grep '8080' | wc -w
    
    在这里插入图片描述

3. 统计文档中每个关键词出现的次数

3.1 先看文档内容 + 需求

3.1.1 文档内容

  • 文档内容如下:
    在这里插入图片描述
    https://www.google.com/index.html
    https://www.baidu.com/index.html
    https://www.zhihu.com/
    https://www.csdn.net/
    https://weread.qq.com/
    https://www.baidu.com/hello.html
    http://localhost:8080/hello.html
    https://www.google.com/en.html
    https://www.google.com/cn.html
    

3.1.2 需求

  • 想实现的需求就是,把上面文档里的所有域名进行统计,并排序打印,要实现如下的效果(前面是域名出现的次数,后面是域名):
    在这里插入图片描述

3.2 分析并实现需求

  • 观察文档里的内容,分析如下:
  1. 第一步列截取域名
    • 首先,我们提取的有规律,是域名,所以根据文档里内容的规律,考虑使用列截取方法,使用 cut 工具。此处不熟悉的可以点进去上面的链接。
    • 二话不说,执行命令,先看第一步效果:
      cut -d'/' -f3 http.txt
      
      在这里插入图片描述
      嗯,还不错,浓缩出精华来了,但是 localhost:8080 不是我们想要的,怎么处理,接下来第二步……
  2. 第二步行过滤掉非域名 localhost:8080
    • 根据第一步的效果,我们在第二步里要把 localhost:8080 这个就要用到我们的 grep 行过滤了,不太清楚的话,还是点进去上面的链接,这里不多说,直接看效果:

      cut -d'/' -f3 http.txt | grep -v 'localhost'
      

      在这里插入图片描述
      嗯,貌似也还不错,至少达到了我们第二步想要的效果了,好,接下来就是怎么统计并排序了,这就需要用到我们另一个命令了,uniq,关于这个命令的使用可以看下面的文章,在这里不做介绍,如下:

      linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理).

  3. 第三步:使用 uniq 命令 和 sort 命令进行排序并统计
    • 对这两命令有疑问的,点上面的链接,里面有详细的介绍与使用示例。
    • 下面直接看效果:
      cut -d'/' -f3 http.txt | grep -v 'localhost' | sort
      cut -d'/' -f3 http.txt | grep -v 'localhost' | sort | uniq -c
      
      在这里插入图片描述
      好,几乎接近我们要实现的目标了,就差怎么把前面统计的数字也给排序一下了,继续往下……
  4. 第四步:按域名统计个数的数字大小进行排序
    • 这步就是在上面基础上再使用一次 sort 即可,生序、降序都可实现,效果如下:
      cut -d'/' -f3 http.txt | grep -v 'localhost' | sort | uniq -c | sort
      cut -d'/' -f3 http.txt | grep -v 'localhost' | sort | uniq -c | sort -r
      
      在这里插入图片描述
      好了,到这里就是完美地实现了上面的需求了!!
  5. 第五步:可了解
    • 当然,上面四步已经实现了需求,下面这个只是了解,我就方上效果,可以看看:
      cut -d'/' -f3 http.txt | grep -v 'localhost' | sort | uniq -c | sort -r | awk '{print $2,$1}'
      cut -d'/' -f3 http.txt | grep -v 'localhost' | sort | uniq -c | sort -r | awk '{print $1,$2}'
      
      在这里插入图片描述
      好了,这个就介绍到这里吧,希望对你有帮助!

相关文章:

linux常用命令介绍 05 篇——实际应用篇(用 cut、uniq等统计文档里每个关键词出现的次数)

linux常用命令介绍 05 篇——实际应用篇(用 cut、uniq等统计文档里每个关键词出现的次数)1. 先导文章——关于行过滤 和 列截取2. 关于单个统计单词个数2.1 grep2.2 wc3. 统计文档中每个关键词出现的次数3.1 先看文档内容 需求3.1.1 文档内容3.1.2 需求…...

大数据处理学习笔记1.7 Scala类与对象

文章目录零、本节学习目标一、类(一)类的定义(二)类的实例化二、单例对象(一)单例对象概念(二)案例演示三、伴生对象(一)伴生对象概念(二&#xf…...

Feign踩坑源码分析 -- 请求参数分号变逗号

一.案例 1.1.Post请求: http://localhost:8250/xx/task/test json格式参数: {"string": "a;b;c;d" } 1.2.controller代码: AutowiredDataSourceClientService dataSourceClientService;RequestMapping("/test"…...

nginx通用history模式刷新

注:1.通用配置只支持二段路由,二段及以上依然需要单独进行配置 2.所有location后面的路径,都需要使用通配符进行配置 location ^~ /phdp/ {try_files $uri $uri/ /phdp/index.html;index ruoyi.html index.html index.htm;}location ^~ /phdp-api/ {client_max_body_size 20m;p…...

Linux系统安装:Zookeeper

目录 Zookeeper的安装 1、环境准备 2、上传 3、解压文件到opt/zookeeper目下 4、安装完后进入zookeeper,找到conf目录 5、复制zoo_sample.cfg 6、编辑zoo.cfg 7、复制一份会话,进入zookeeper安装目录,创建一个文件夹zkdata&#xff0…...

cocos2dx+lua学习笔记:UIPageView的使用

前言 本篇在讲什么 本篇简单介绍Lua篇cocos2dx中UIPageView的相关内容 仅介绍简单的应用,仅供参考 本篇适合什么 适合初学Cocos2dX的小白 适合想要在Cocos2dx-lua中使用UIPageView的人 本篇需要什么 对Lua语法有简单认知 对Cocos2dx-Lua有简单认知 Cocos2…...

MyBatis常见面试题汇总(超详细回答)

目录 1.什么是Mybatis? 2.Mybatis的优缺点? 3.#{} 和 ${} 的区别是什么? 4.xml 映射文件中有哪些标签? 5.模糊查询 like 语句该怎么写? 6.Mapper 接口的工作原理是什么?Mapper 接口里的方法,参数不同…...

Jvm调优实战笔记

一、基础命令jps 查看所有java进程jinfo 进程号 查看该线程相关信息3、jstat 统计信息(数据跟踪信息)jstat -gc 进程号 查看该线程在内存中每一块占用的大小jstat -gc 进程号 时间(毫秒) 更新频率4、jstack 跟踪线程jstack 进程号…...

JVM 全面了解

JVM包含两个子系统和两个组件,两个子系统为Class loader(类装载器)、Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)。 方法区:存储已被虚拟机加载的类元数据信息(元空间) 堆&#xf…...

阿里开源自研高性能核心搜索引擎 Havenask

去年12月,阿里开源了自研的大规模分布式搜索引擎 Havenask(内部代号 HA3)。  Havenask 是阿里巴巴内部广泛使用的大规模分布式检索系统,支持了淘宝、天猫、菜鸟、优酷、高德、饿了么等在内整个阿里的搜索业务&#…...

nginx日志服务之敏感信息脱敏

1. 创建实验资源 开始实验之前,您需要先创建实验相关资源。 日志服务之敏感信息脱敏与审计 2. 创建原始数据 本步骤将指导您如何创建NGINX模拟数据。 双击打开虚拟桌面的Firefox ESR浏览器。 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子…...

【uni-app教程】一、UniAPP 介绍

一、UniAPP 介绍 (1) 什么是 UniAPP? uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到 iOS,Android,HS,以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉》等多个平台&#…...

Splunk Real-time Search 的研究

最近客户想搞清Splunk real-time search 和related search 有啥区别,想两个都试试,看看效果。 为了更好的说明什么是real-time search, 先看一下: With real-time searches and reports, you can search events before they are indexed and preview reports as the event…...

SWM181 串口功能使用介绍

SWM181 串口功能使用介绍📌SDK固件包:https://www.synwit.cn/kuhanshu_amp_licheng/✨注意新手谨慎选择作为入门单片机学习。🌼开发板如下图: 📋SWM181描述上写了有4个串口,在数据手册上,将引脚…...

Stochastic Approximation 随机近似方法的详解之(三)Dvoretzky’s convergence theorem

定理内容 Theorem 6.2 (Dvoretzky’s Theorem). Consider a stochastic process wk1(1−αk)wkβkηkw_{k1}\left(1-\alpha_k\right) w_k\beta_k \eta_kwk1​(1−αk​)wk​βk​ηk​, 其中{αk}k1∞,{βk}k1∞,{ηk}k1∞\{\alpha_k\}^\infty_{k1},\{\beta_k\}^\infty_{k1},\…...

7个ES6解构技巧让代码更简洁

您是否厌倦了编写臃肿且难以阅读的代码?想要提升您的编码技能并使您的代码更具可读性和简洁性? 从解构对象和数组到使用默认值和展开运算符,我们将涵盖所有内容,现在,我们将准备好掌握干净简洁的编码艺术。 1.解构对…...

曾经被人们看成是异想天开的产业互联网,或许终将会实现

一波还未平息,一波又起。元宇宙的热度还未彻底散去,ChatGPT已经成为了名符其实的新风口。如果用一个概念来定义现在这样一个热点和风口频出的时代的话,我想,用产业互联网或许是再合适不过的了。对此,可能有人并不认同。…...

log4j控制台不打印日志的故障解决方案

前言 接管了别的项目组的一个代码,在IDAE调试程序的过程中,发现log4j日志居然没有打印在控制台上,日志相关代码也没有问题。 在网上搜索了一圈,总结了一下个人解决这个问题的流程。 流程 1. 判断用了什么配置文件 不知道是出…...

C# 序列化时“检测到循环引用”错误的彻底解决方案

目录 一&#xff0c;问题表现 二、没有技术含量的解决方案 三、本人彻底的解决方案 简要说明 贴代码 思路解析 思路 一&#xff0c;问题表现 示例代码如下&#xff1a; [Serializable] public class NodeTest {public NodeTest (){new List<NodeTest> ();}p…...

小红书“复刻”微信,微信“内造”小红书

配图来自Canva可画 随着互联网增长红利逐渐见顶&#xff0c;各大互联网平台对流量的争夺变得愈发激烈。而为了寻找新的业务可能性&#xff0c;各家都在不遗余力地拓宽自身边界。在此背景下&#xff0c;目前最为“吸睛”和“吸金”的社交、电商、种草、短视频等领域&#xff0c…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...