sort

sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。

sort语法[root@www ~]# sort [-fbMnrtuk] [file or stdin]

选项与参数:-f  :忽略大小写的差异,例如 A 与 a 视为编码相同;-b  :忽略最前面的空格符部分;-M  :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;-n  :使用『纯数字』进行排序(默认是以文字型态来排序的);-r  :反向排序;-u  :就是 uniq ,相同的数据中,仅出现一行代表;-t  :分隔符,默认是用 [tab] 键来分隔;-k  :以那个区间 (field) 来进行排序的意思
对/etc/passwd 的账号进行排序
[root@www ~]# cat /etc/passwd | sortadm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

sort 是默认以第一个数据来排序,而且默认是以字符串形式来排序,所以由字母 a 开始升序排序。

/etc/passwd 内容是以 : 来分隔的,我想以第三栏来排序,该如何

[root@www ~]# cat /etc/passwd | sort -t ':' -k 3root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin

默认是以字符串来排序的,如果想要使用数字排序:

cat /etc/passwd | sort -t ':' -k 3nroot:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/sh

默认是升序排序,如果要倒序排序,如下

cat /etc/passwd | sort -t ':' -k 3nr
nobody:x:65534:65534:nobody:/nonexistent:/bin/shntp:x:106:113::/home/ntp:/bin/falsemessagebus:x:105:109::/var/run/dbus:/bin/falsesshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin

如果要对/etc/passwd,先以第六个域的第2个字符到第4个字符进行正向排序,再基于第一个域进行反向排序。

cat /etc/passwd |  sort -t':' -k 6.2,6.4 -k 1r
sync:x:4:65534:sync:/bin:/bin/syncproxy:x:13:13:proxy:/bin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/sh

查看/etc/passwd有多少个shell:对/etc/passwd的第七个域进行排序,然后去重:

cat /etc/passwd |  sort -t':' -k 7 -u
root:x:0:0:root:/root:/bin/bash
syslog:x:101:102::/home/syslog:/bin/falsedaemon:x:1:1:daemon:/usr/sbin:/bin/shsync:x:4:65534:sync:/bin:/bin/syncsshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin

uniq

uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

uniq语法

[root@www ~]# uniq [-icu]
选项与参数:-i   :忽略大小写字符的不同;-c  :进行计数-u  :只显示唯一的行

testfile的内容如下cat testfile

hello
world
friend
hello
world
hello

直接删除未经排序的文件,将会发现没有任何行被删除#uniq testfile

hello
world
friend
hello
world
hello

排序文件,默认是去重

#cat words | sort |uniqfriend
hello
world

排序之后删除了重复行,同时在行首位置输出该行重复的次数

#sort testfile | uniq -c1 friend3 hello2 world

仅显示存在重复的行,并在行首显示该行重复的次数

#sort testfile | uniq -dc3 hello2 world

仅显示不重复的行

sort testfile | uniq -u
friend

cut

cut命令可以从一个文本文件或者文本流中提取文本列。

cut语法

[root@www ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符
[root@www ~]# cut -c 字符区间            <==用于排列整齐的信息
选项与参数:-d  :后面接分隔字符。与 -f 一起使用;-f  :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;-c  :以字符 (characters) 的单位取出固定字符区间;

PATH 变量如下

[root@www ~]# echo $PATH/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games
# 1 | 2       | 3   | 4       | 5            | 6            | 7

将 PATH 变量取出,我要找出第五个路径。

#echo $PATH | cut -d ':' -f 5/usr/local/bin

将 PATH 变量取出,我要找出第三和第五个路径。

#echo $PATH | cut -d ':' -f 3,5/sbin:/usr/local/bin

将 PATH 变量取出,我要找出第三到最后一个路径。

echo $PATH | cut -d ':' -f 3-
/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games

将 PATH 变量取出,我要找出第一到第三个路径。

# $PATH |  -d  -f -
/bin:/usr/bin:/sbin:

将 PATH 变量取出,我要找出第一到第三,还有第五个路径。

 $PATH |  -d  -f -,
/bin:/usr/bin:/sbin:/usr/local/bin

实用例子:只显示/etc/passwd的用户和shell

#cat /etc/passwd | cut -d ':' -f 1,7 root:/bin/bash
daemon:/bin/shbin:/bin/sh

 wc

统计文件里面有多少单词,多少行,多少字符。

wc语法

[root@www ~]# wc [-lwm]
选项与参数:-l  :仅列出行;-w  :仅列出多少字(英文单字);-m  :多少字符;

默认使用wc统计/etc/passwd

#wc /etc/passwd40   45 1719 /etc/passwd

40是行数,45是单词数,1719是字节数

wc的命令比较简单使用,每个参数使用如下:#wc -l /etc/passwd   #统计行数,在对记录数时,很常用40 /etc/passwd       #表示系统有40个账户#wc -w /etc/passwd  #统计单词出现次数45 /etc/passwd#wc -m /etc/passwd  #统计文件的字节数1719

转载于:https://blog.51cto.com/doublelinux/1910733

Linux中sort、uniq、cut、wc命令详解相关推荐

  1. Linux中sort,uniq,cut,wc命令详解

    Linux中sort,uniq,cut,wc命令详解 来源:hellodev 本文主要对Linux中sort,uniq,cut,wc这4个命令的使用方法进行了详细说明,希望对你有所帮助. sort s ...

  2. linux sort,uniq,cut,wc命令详解

    linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...

  3. Linux中Crontab(定时任务)命令详解及使用教程

    Crontab介绍: Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"cr ...

  4. linux wc -l效率,Linux wc命令详解

    wc常见命令参数 wc -l : 统计行 wc -c: 统计字节数 wc -m:统计字符数,不能与-c同时使用 wc -w:统计字数 wc -L:打印最长长度 注意: wc 可以直接后面跟文件使用,但 ...

  5. linux终端机详解,Linux reset设定终端机的状态命令详解

    名称: reset, tset 使用方法: tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal] 使用说明: reset ...

  6. Linux服务器,服务管理--systemctl命令详解,设置开机自启动

    Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了. 摘要: syst ...

  7. linux下tar命令解压缩,tar解压缩命令 Linux下的tar压缩解压缩命令详解

    <tar解压缩命令 Linux下的tar压缩解压缩命令详解>由会员分享,可在线阅读,更多相关<tar解压缩命令 Linux下的tar压缩解压缩命令详解(14页珍藏版)>请在人人 ...

  8. 【Linux】定时任务crontab和at命令详解

    [Linux]定时任务crontab和at命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的 ...

  9. linux内存管理机制以及free命令详解

    linux内存管理机制以及free命令详解 一.linux内存管理机制 1.物理内存和虚拟内存 直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存 ...

  10. linux文件目录:Linux中各目录(文件夹)作用详解(持续更新)

    进入Linux系统,我们就是畅游在各种目录文件中,毕竟Linux是"文件系统",文件的存放就是在目录下面,那我们了解下"Linux中各目录(文件夹)作用详解"还 ...

最新文章

  1. ac自动机模板(hdu2222)
  2. linux下 get,Unix/Linux下 getrusage 的用法
  3. 开始——“运行”命令集
  4. android自定义view圆,Android自定义View圆形百分比控件(一)
  5. 简洁精美的图片在线压缩网站html源码
  6. Linux -Ubuntu安装 Tomcat
  7. powershell 停止正在运行的用户应用
  8. 草根站长的创业之路(真实纪实)
  9. 在Excel表格里面一点就出现“√”符号选项的方法
  10. docker服务及镜像开机自动启动
  11. python 英语词频统计_Python实现统计英文文章词频的方法分析
  12. 已解决【Watch检查软件更新失败,因为你尚未接入互联网。】
  13. win10管理员名称更改方法
  14. 已有一个已排好序的数组,要求输入一个数后,按原来顺序的规律将它插入数组中。
  15. C++模板 —— 万字带你了解C++模板(蓝桥杯算法比赛必备知识STL基础)
  16. 【C++】%c,%s分别代表什么意思
  17. servlet3.1规范翻译:第13章 安全
  18. 高考必胜|东方星书法祝全体考生旗开得胜,金榜题名
  19. 【电子书资源】 PDF格式 持续更新
  20. qq邮箱如何在win10邮箱连接到服务器,Win10系统自带Mail应用添加QQ邮箱的方法

热门文章

  1. 发送图片微博_微博引流之(实时号养成内幕解析)!
  2. LTE各场景下的密钥处理
  3. 安科 OJ 1190 连接电脑 (并查集)
  4. Excel打印区域设置
  5. DHCP服务搭建(1)
  6. 一颗ARM架构芯片的软硬件构成
  7. Linux学习笔记4-CentOS7中redis3.2.9安装教程
  8. quot;《 Serial Drivers 》by Alessandro Rubiniquot; 学习笔记
  9. Java 字符串比较,String 中的一些方法 == 和 equals 的详解
  10. HTML特殊编码转换