文本操作3(cut,sort)(代码片段)

author author     2022-10-27     128

关键词:

需求
  • 检查当前系统中的各种shell程序,统计出它们各被多少用户所使用,并把统计结果按照从多到少排序打印出来

    解决方案

  • 每个用户所使用登录的shell都保存在系统文件/etc/passwd中,我们已经知道这个文件中每一行对应一个用户的信息,并且最后一个字段就是这个用户所使用的shell程序。因此可以使用cut命令提取shell程序的字段,在通过sort命令进行合并,然后使用uniq命令统计各个shell的使用次数,最后通过sort命令对数字进行排序。
    #cut命令从文件中的每一行数据中剪切出一部分
    #sort命令对数据按照行进行排序,把相同的shell程序放在一起
    #uniq -c命令删除相同行,并统计重复次数
    [[email protected] shellXT]# cat /etc/passwd |cut -d: -f7 |sort |uniq -c|sort -nr
     15 /sbin/nologin
      2 /bin/bash
      1 /sbin/shutdown
      1 /sbin/halt
      1 /bin/sync

    讨论

  • /etc/passwd文件中记录了每个用户使用的shell程序,而它中的每一行都是由冒号分割的7个字段,并且最后一个字段就是用户所使用的shell程序
  • cut -d:能够识别文件的冒号分隔符(默认是TAB),-f7可以提取文件的第七段,这样就可以得到每一个用户所使用的shell程序,在通过sort命令排序,就可以把相同的shell程序放在一起。然后在通过uniq -c命令的合并和统计,就可以得到每一种shell程序被使用的次数,为了把使用次数最多的放在最前面,还要再一次根据数字的大小进行排序。sort命令默认是根据字符的顺序进行排序,加上-nr选项就可以从大到小排序了
  • 如果不进行统计操作,只是把重复的行去掉,就没有必要使用uniq命令,sort -u就可以完成这个工作,如下:
    [[email protected] shellXT]# cat /etc/passwd |cut -d: -f7|sort -u
    /bin/bash
    /bin/sync
    /sbin/halt
    /sbin/nologin
    /sbin/shutdown

linux:cut、sort都是针对列操作,有没有对行操作的命令?

...t选项文件1文件2......sort命令的常用选项包括:-t指定分割文本的分隔符-k指定按照分割后文本内容的第几列排序-r结果降序排序-n把文本转换为数值再排序使用sort命令的示例如下:①sort-rn-k2f1:按照文档第二列的数值大小进行降... 查看详情

文本操作(ls,grep,head,cut)(代码片段)

需求从一个目录中取出最近访问过的5个普通文件,并且要求输出文件名和最后的访问时间解决方案通过ls-t和-u根据文件的访问时间进行排序,用|grep过滤出普通文件,在用head过滤出文件列表的前五行,最后用cut剪切无关的数据... 查看详情

第四周文本处理工具(代码片段)

1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来grep-v"/sbin/nologin$"/etc/passwd|cut-d:-f12、查出用户UID最大值的用户名、UID及shell类型sort-t:-k3-nr/etc/passwd|head-1|cut-d:-f1,3,7|tr":"""3... 查看详情

shell工具cut/sed/awk/sort(代码片段)

1.cutcut的工作就是“剪”,具体的说就是在文件中负责 剪贴数据 用的。cut命令从文件的每一行剪贴字节、字符 和 字段,并将这些字节、字符和字段输出。(1)基本用法cut[选项参数]filename说明:默认分隔符... 查看详情

文本预处理常用操作(代码片段)

这里介绍一下文本预处理中常用的操作:1.英文统一小写text=text.lower() 2.分词defcut(text):#returnlist(jieba.cut(text))return[itemforiteminjieba.cut(text.lower())]iftext!=""else[] 3.去噪两种方式(1)去停用词包括中英文标点符号、以... 查看详情

文本操作4(tr,sort,unip)(代码片段)

需求统计一个文本文件中各个单词出现的个数解决方案我们知道wc命令可以统计文本的行数,字数和字符数,但是它不能统计每一个单词出现的个数,因此我们需要自己构建一个脚本来实现这个功能。要想实现这个脚本,需要用... 查看详情

文本处理(代码片段)

1.文本处理相关:comm:三排结果1:只存在第一个文件中的内容2:第二个文件中内容3:公共的内容相同的内容sort:排序默认不比较数字大小从左到右字母序数字大小比较加上参数:sort-n:比较数字大小sort-o:输出比较结果sort-r... 查看详情

linux小工具(grep+cut+sort+uniq+tee+diff+patch+paste+tr)(代码片段)

文章目录1.grep2.cut3.sort4.uniq5.tee6.diff1)正常显示2)上下文格式显示3)合并格式显示4)比较两个目录不同5)小技巧(patch)7.paste8.tr工具1.grepgrep是一个行过滤工具,可以根据指定的关键词进行过滤语... 查看详情

第十三章对文本进行排序单一和重复操作:sort命令uniq命令(代码片段)

第十三章对文本进行排序、单一和重复操作:sort命令、uniq命令sort命令名字解释sort命令它将文件进行排序,并将排序结果标准输出。sort命令即可以从特定的文件,也可以从stdin中获取输入。语法sort(选项)(参数)选项-b:忽略每行... 查看详情

shell命令三剑客之awk命令详解,cut命令,linux里记录行踪(操作记录)(代码片段)

...记录行踪(操作记录)的地方1.初识awk命令AWK是一种处理文本文件的语言,是一个强大的文本分析工具。AWK名字的来源:取了三位创始人AlfredAho,PeterWeinberger,和BrianKernighan的FamilyName的首字符。shell命令三剑客的比较:grep更适合单... 查看详情

cut命令

...进行排序,grep可以针对行进行过滤。cut可以针对列进行操作的。2.cut命令的使用方法语法:cut[选项]文件选项:d:指定分隔符,默认空格,制表符。如:-d":"f:指定操作第几列,多列需要逗号隔开。如:-f1,3-6b:指定截取... 查看详情

linux文本处理工具及用户组和权限管理(代码片段)

1、列出当前系统上所有己经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。执行命令:who|cut-d""-f1|sort-u2、取出最后登录到当前系统的用户的相关信息。执行命令:who|tail-n1|cut-d""-f1|xargsid3... 查看详情

textshellgrep,awk,sed,cut文本处理对比(代码片段)

查看详情

linux命令实现词频统计(代码片段)

...iq-c|sort-k11nasa2hello3max注意:上面在分组前进行一次sort操作并不是多余的,假如不sort,uniq只会对相邻相同的单词分组。拓展获取不重复的word个数cattest.txt|cut-d''-f1|sort|uniq-c|wc-l3大数据环境上述的wordcount在海量数... 查看详情

grep,cut,wc,sort,diff,uniq,patch命令

文本处理工具: Linux上文本处理三剑客: grep,egrep,fgrep:文本过滤工具(模式:pattern)工具; grep:基本正则表达式,-E,-F egrep:扩展正则表达式,-G,-F fgrep:不支持正则表达式, sed:streameditor,流编辑器;文本编辑工具; awk:Linux上实现为gawk,文... 查看详情

正式班d16(代码片段)

...录9.9字符处理命令9.9.1sort排序9.9.2uniq去重9.9.3cut处理规律文本9.9.4tr替换9.9.5wc统计9.10打包压缩9.10.1基本概念9.10.2tar.gz与tar.biz29.10.3解包9.10.4zip9.10.5备份9.11文件系统9.11.1简介9.11.2文件系统工作原理9.11.3扩展9.11.4软链接、硬链 查看详情

cut命令用于按“列”提取文本字符,格式为“cut[参数]文本”(代码片段)

8.cut命令cut命令用于按“列”提取文本字符,格式为“cut[参数]文本”。在Linux系统中,如何准确地提取出最想要的数据,这也是我们应该重点学习的内容。一般而言,按基于“行”的方式来提取数据是比较简... 查看详情

脚本编程基础(代码片段)

...shiyan1.sh,用来显示当前主机名、主机系统信息、IPV4地址、操作系统版本、内核版本、CPU型号、内存大小、硬盘大小。[man~]#vimshiyan1.sh#!/bin/bashsleep1echo`hostname`sleep1echo`cat/etc/redhat-release|cut-d.-f1-2`sleep1echoIPV4地址:`ifconfig|grep-o"[1-9]1,3.[... 查看详情