iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux shell命令统计某列去重后的值
  • 247
分享到

Linux shell命令统计某列去重后的值

摘要

需求:根据Mac获取,MAC对应的硬件版本和软件版本。在根据硬件版本统计MAC的数量 $ head test_1.txt 00:07:67,EC2108,HWV010537P0000 00:07:63,Z83,Z

需求:根据Mac获取,MAC对应的硬件版本和软件版本。在根据硬件版本统计MAC的数量


$ head test_1.txt

00:07:67,EC2108,HWV010537P0000
00:07:63,Z83,ZNV861010P1225
00:07:67,EC6108V9U_ca_sccdx,HWV218012P0000
00:07:63,SBox8900hisi3716V3,ZGV865012P0001
00:07:67,EC6108V9U_ca_sccdx,HWV218012P0000
00:21:26,EC6108V9U_ca_sccdx,HWV218012P0000
00:07:67,EC6108V9U_ca_sccdx,HWV218012P0000
00:07:63,STBHD-ST7105-000,ZTV70433089P0002
00:21:26,EC6108V9U_ca_sccdx,HWV215012P0000
00:21:26,EC6108V9U_ca_sccdx,HWV218012P0000

第二列去重


$ cat test_2.txt | awk -F ',' '{print $2}' | sort | uniq

EC2108
EC6108V9U_ca_sccdx
SBox8900hisi3716V3
STBHD-ST7105-000
Z83

将字符串转化为列表


import os
path = "C:\\Users\\Administrator\\Desktop\\stb\\dd.txt"
read = open(path,"r")
list_ = []
for line in read:
  line_ = line.strip()
  list_.append(line_)
print(list_)

根据厂商和硬件版本获取对应的软件版本

方法一:


GET gather-012-20180109/_search
{
 "size": 0, 
 "aggs": {
  "1": {
   "terms": {
    "field": "dev_hard_ver",
    "size": 200
   },
   "aggs": {
    "2": {
     "terms": {
      "field": "soft_ver",
      "size": 1
     }
    }
   }
  }
 }
}

方法二:


import os
from elasticsearch import Elasticsearch
path = "C:\\Users\\Administrator\\Desktop\\stb\\fact_stb.txt"
write_file = open(path,"a+")
es = Elasticsearch()
def get_Data(dev_hard_ver,dev_vendor_name):
  index_ = "gather-012-20180109"
  try:
    rs = es.search(index=index_,body={
      "size": 1,
       "query": {
        "bool": {
         "must": [
          {"term": {
           "dev_hard_ver": {
            "value": dev_hard_ver
           }
          }
         },
         {
          "term": {
           "dev_vendor_name": {
            "value": dev_vendor_name
           }
          }
         }
         ]
        }
       },
       "_source": ["soft_ver","dev_vendor_name","dev_hard_ver"]
    })
    return rs
  except:
    return -1
dev_hard_ver=["02L0B61701MTAS0001", "0x209", "0x441", "0x485", "0xE0A", "0xE17", "16060102L0B61701MTAS0001", "1828", "1903", "2035", "5202", "99007002L0B6170635100791", "9900B002L0B61701IHO3000T", "990104010004102300000001", "99010402L0B6083100000001", "990501010003170908A5C800", "A7.32.64.A0", "B860AV2.1", "BJDS2Z-52", "CHEP3000SC", "CHI619112", "CHIHO3000", "CHIHO3000A", "CHIHO3000JX2", "CHIHO33", "CHIHO3300A", "CHIHO3300AD", "CUB-AndroidSTB", "EC2106V1", "EC2108", "EC6108V9_pub_gdydx", "EC6108V9U_ca_sccdx", "EC6108V9U_pub_hbjdx", "EC6108V9U_pub_sccdx", "G2-40_2544", "HG510I", "HG650-TDSWH", "HG650-TDSWH-11", "HT670-V", "HY_V1.0", "HY107", "HY112", "HY127", "HY2021", "HY34E71C02L0B6V003HG510P04", "HY34E71C02L0B6V3.0HG510P10", "HY44170102L0B6V003HG510P04", "HY9900E0013798KK0120170001", "HY990104010004102300000001", "HYC37.E", "HYCHEP920SC", "HYCHEP921SC", "HYEE", "HYHG510IV1.0", "HYHG510PV3.0", "HYTY_H1.00.00", "HYV10-ANDROIDIGW-068", "HYYiX-G210V1.1", "IBHN-ANDROIDSTB-068", "IBHR-ANDROIDSTBGA-069", "IBHU-ANDROIDSTB-068", "IBHX-ANDROIDSTBGA-068", "IBHX-ANDROIDSTBGA-069", "IPTV-S63-V1.1", "IPTV-S65-V1.1", "IPTV-S65-V1.2", "ITV628 HD", "KB1.100.01H", "M8043V02", "MR222-DSGH-19", "mx_ca_sccdx", "S80-E-R1.01.01", "SBox8900hisi3716V3", "SBox8900hisi3716V386501007", "STBAB-ANDROIDSTB-068", "STBAB-ANDROIDSTBGA-069", "STBHD-AML8626X-000", "STBHD-ST7105-000", "STBHD-ST7105-128-256-000", "STBHO-AML8626X-000", "tgh0001", "TY_A1.00.00", "TY_H1.00.00", "V1", "V10-ANDROIDIGW-068", "V2.1", "Z82", "Z83", "Z85E", "ZXB700V5C(IBHL-000-000)", "ZXB860A(IBHR-ANDROIDSTB-068)", "ZXB860A(IBHR-ANDROIDSTBGA-068)"]
dev_vendor_name=["SCTY", "CHANGHONG", "Jiuzhou", "Jiuzhou", "Hisense", "Hisense", "SCTY", "SKYWORTH", "SKYWORTH", "SKYWORTH", "Huawei", "ZTE", "CHANGHONG", "SKYWORTH", "SKYWORTH", "Zhaoneng", "UTSTARCOM", "ZTE", "Fiberhome", "CHANGHONG", "CHANGHONG", "CHANGHONG", "CHANGHONG", "CHANGHONG", "CHANGHONG", "CHANGHONG", "CHANGHONG", "YOUHUA", "Huawei", "Huawei", "Huawei", "Huawei", "Huawei", "Huawei", "YINHE", "UTStarcom", "Fiberhome", "Fiberhome", "Zhaoneng", "SCTY", "Hisense", "Hisense", "Hisense", "SKYWORTH", "YHTC", "YHTC", "YHTC", "FiberHome", "SKYWORTH", "Huawei", "CHANGHONG", "CHANGHONG", "Hisense", "UTStarcom", "YHTC", "SCTY", "ZTE", "CCS", "ZTE", "ZTE", "ZTE", "ZTE", "ZTE", "ChinaGCI", "ChinaGCI", "ChinaGCI", "ChangHong", "30kt", "Huawei", "FiberHome", "Huawei", "ChinaGCI", "Sunniwell", "Sunniwell", "ZTE", "ZTE", "ZTE", "ZTE", "ZTE", "ZTE", "Yihekeji", "SCTY", "SCTY", "ZTE", "ZTE", "FiberHome", "Zhaoneng", "Zhaoneng", "Zhaoneng", "ZTE", "ZTE", "ZTE"]
for i in range(len(dev_vendor_name)):
  rs = get_Data(dev_hard_ver[i],dev_vendor_name[i])
  if rs!=-1:
    for hit in rs['hits']['hits']:
      soft_ver=hit['_source']['soft_ver']
      if soft_ver is None:
        soft_ver='None'
      write_file.write(soft_ver+"\n")
    else:
      write_file.write("-1" + "\n")
write_file.close()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

--结束END--

本文标题: Linux shell命令统计某列去重后的值

本文链接: https://www.lsjlt.com/news/20159.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在Linux中使用shell命令统计某列去重后的值
    这篇文章将为大家详细讲解有关如何在Linux中使用shell命令统计某列去重后的值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。需求:根据MAC获取,MAC对应的硬件版本和软件版本。在根据硬...
    99+
    2023-06-09
  • pandas怎么统计某一列或某一行的缺失值
    本篇内容主要讲解“pandas怎么统计某一列或某一行的缺失值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pandas怎么统计某一列或某一行的缺失值”吧!统计某一列或某一行的缺失值数目1.使用i...
    99+
    2023-06-30
  • python怎么统计某列不同值的个数
    可以使用pandas库来统计某列不同值的个数。首先,需要安装pandas库:```pip install pandas```然后,导...
    99+
    2023-09-26
    python
  • python如何统计某列不同值的个数
    可以使用Python的pandas库来统计某列的不同值的个数。下面是一个示例代码: import pandas as pd # 创...
    99+
    2023-10-22
    python
  • pandas如何统计某一列或某一行的缺失值数目
    目录统计某一列或某一行的缺失值数目1.使用isnull()2.使用count利用pandas处理缺失值处理缺失值统计某一列或某一行的缺失值数目 1.使用isnull() import...
    99+
    2024-04-02
  • Linux系统中的Shell test 命令小蛮腰
    Linux系统中的Shell test 命令小蛮腰,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。test是Shell中检查某个特定条件是否成立的命令,test可以对数值、字符和...
    99+
    2023-06-28
  • Linux系统中统计文件中某个字符出现次数命令详细教程
    文章目录 Linux系统中统计文件中某个字符出现次数命令一、使用grep命令1.1 不区分大小写统计1.2 统计多个文件1.3 统计行数1.4 统计压缩文件 总结 Lin...
    99+
    2023-09-04
    linux 正则表达式 运维 服务器
  • Linux Shell如何用ssh命令统计分布式集群信息详解
    目录一、统计分布式集群信息的思路二、SSH加密原理三、SSH命令四、利用ssh-keygen和ssh-copy-id 实现免密登录五、Linux Shell 脚本实现六、ssh只循环...
    99+
    2024-04-02
  • Python实战基础之Pandas统计某个数据列的空值个数
    目录一、实战场景二、主要知识点三、菜鸟实战1、创建 python 文件2、运行结果 补充:Pandas检查是否有空值、处理空值总结一、实战场景 实战场景:Pandas 如何...
    99+
    2024-04-02
  • Linux系统管理中有哪些常用的shell命令
    本篇内容主要讲解“Linux系统管理中有哪些常用的shell命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统管理中有哪些常用的shell命令”吧!显示消耗内存/CPU最多的10个...
    99+
    2023-06-09
  • Linux系统中受欢迎的命令行Shell有哪些
    这篇文章主要介绍了Linux系统中受欢迎的命令行Shell有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。shell是一个抽象概念,shell的一切操作都在计算机内部,负...
    99+
    2023-06-27
  • Shell命令与Go编程:Unix系统下的重定向技巧
    在Unix系统下,Shell命令与Go编程都是非常常见的技能。如果你是一名程序员或者系统管理员,那么你一定需要掌握一些Unix系统下的重定向技巧,这将有助于提高你的工作效率。本文将介绍一些常见的重定向技巧,并且通过演示代码来说明如何在She...
    99+
    2023-06-24
    重定向 shell unix
  • 有哪些Linux系统的关机与重启命令
    本篇内容主要讲解“有哪些Linux系统的关机与重启命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些Linux系统的关机与重启命令”吧!1、 syncsync:flush file sys...
    99+
    2023-06-12
  • Linux命令行下的Python重定向技巧,Bash的精髓值得学习!
    Linux命令行下的Python编程早已经成为了一种不可或缺的技能,而Python重定向技巧则是其中的一项重要技能。在本文中,我们将学习如何使用Python重定向技巧来提高我们的效率和灵活性。 什么是重定向? 在Linux命令行中,重定向...
    99+
    2023-08-30
    linux bash 重定向
  • 在Windows系列中的Linux系统下“Which”命令的使用方法介绍
    在linux下,有一个命令叫做which,它可以在Path中寻找某个命令所在的目录并显示出来。   Linux下:[adam@i ase adam]$ which ls/bin/ls[adam@i ase adam]$ ...
    99+
    2023-05-31
    Windows Linux Which 命令 系统 系列
  • 在Linux的命令行中实现字符出现频率统计的方法
    本篇内容主要讲解“在Linux的命令行中实现字符出现频率统计的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Linux的命令行中实现字符出现频率统计的方法”吧!立刻来到我们脑海的命令,计算...
    99+
    2023-06-13
  • 美国服务器Linux系统关闭或重启主机的命令是什么
    美国服务器Linux系统关闭或重启主机的命令是:1、关闭主机的命令是shutdown,如想立即关闭美国服务器主机可以使用shutdown -h now命令;2、重启主机的命令是reboot,如果想关掉设备可以使用reboot p命令;3、定...
    99+
    2024-04-02
  • Unix系统中的Go编程:如何使用Shell命令进行重定向和处理输入输出?
    Unix系统和Go编程语言在现代计算机应用中都有广泛的应用。在Unix系统中,Shell命令是非常重要的,它们可以用来控制进程、文件和输入输出等。在Go编程语言中,我们可以使用os包和os/exec包来处理Shell命令的输入输出和重定向...
    99+
    2023-06-24
    重定向 shell unix
  • Unix系统中的Shell命令和Go编程:掌握重定向技巧,轻松应对输入输出
    在Unix系统中,Shell是一种命令行解释器,用于处理用户输入的命令。Go是一种编程语言,常用于编写系统级软件和网络应用程序。在本文中,我们将探讨如何在Unix系统中使用Shell命令和Go编程,掌握重定向技巧,轻松应对输入输出。 一、S...
    99+
    2023-06-24
    重定向 shell unix
  • linux下如何使用fdisk结合partprobe命令不重启系统添加一块新的磁盘分区
    linux下如何使用fdisk结合partprobe命令不重启系统添加一块新的磁盘分区,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。主机自带硬盘超过300GB,...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作