sort

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

sort语法

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

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

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

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

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

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

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

  1. cat /etc/passwd | sort -t ':' -k 3nr
  2. nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
  3. ntp:x:106:113::/home/ntp:/bin/false
  4. messagebus:x:105:109::/var/run/dbus:/bin/false
  5. sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin

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

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

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

  1. cat /etc/passwd | sort -t':' -k 7 -u
  2. root:x:0:0:root:/root:/bin/bash
  3. syslog:x:101:102::/home/syslog:/bin/false
  4. daemon:x:1:1:daemon:/usr/sbin:/bin/sh
  5. sync:x:4:65534:sync:/bin:/bin/sync
  6. sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin

uniq

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

uniq语法

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

testfile的内容如下

  1. cat testfile
  2. hello
  3. world
  4. friend
  5. hello
  6. world
  7. hello

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

  1. #uniq testfile
  2. hello
  3. world
  4. friend
  5. hello
  6. world
  7. hello

排序文件,默认是去重

  1. #cat words | sort |uniq
  2. friend
  3. hello
  4. world

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

  1. #sort testfile | uniq -c
  2. 1 friend
  3. 3 hello
  4. 2 world

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

  1. #sort testfile | uniq -dc
  2. 3 hello
  3. 2 world

仅显示不重复的行

  1. sort testfile | uniq -u
  2. friend

cut

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

cut语法

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

PATH 变量如下

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

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

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

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

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

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

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

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

  1. #echo $PATH | cut -d ':' -f 1-3
  1. /bin:/usr/bin:/sbin:
  1.  

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

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

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

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

 wc

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

wc语法

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

默认使用wc统计/etc/passwd

  1. #wc /etc/passwd
  2. 40 45 1719 /etc/passwd

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

wc的命令比较简单使用,每个参数使用如下:

  1. #wc -l /etc/passwd #统计行数,在对记录数时,很常用
  2. 40 /etc/passwd #表示系统有40个账户
  3.  
  4. #wc -w /etc/passwd #统计单词出现次数
  5. 45 /etc/passwd
  6.  
  7. #wc -m /etc/passwd #统计文件的字节数
  8. 1719

参考 http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_6.php#pipe_2

http://www.cnblogs.com/stephen-liu74/archive/2011/11/10/2240461.html

  http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858385.html

 
 
 

(转)linux sort,uniq,cut,wc命令详解的更多相关文章

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

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

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

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

  3. linux sort,uniq,cut,wc命令详解 (转)

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

  4. (F) linux sort,uniq,cut,wc命令详解

    F:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858385.html sort sort 命令对 File 参数指定的文件中的行排序,并 ...

  5. Linux之 sort,uniq,cut,wc命令详解

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

  6. Ubuntu 14.10 下sort,uniq,cut,wc命令详解

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

  7. sort,uniq,cut,wc命令详解

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

  8. uniq cut wc 命令详解

    uniq uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用.也就是说,为了使uniq起作用,所有的重复行必须是相邻的. uniq语法 [root@www ~]# uniq [ ...

  9. 【转帖】linux sort,uniq,cut,wc,tr,xargs命令详解

    linux sort,uniq,cut,wc,tr,xargs命令详解 http://embeddedlinux.org.cn/emb-linux/entry-level/201607/21-5550 ...

随机推荐

  1. js中call()方法和apply方法的使用

    1. 方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call ...

  2. dsp5509的中断系统

    1. DSP5509有32个中断,中断分为软件中断和硬件中断,同时软件中断不可以屏蔽.软件中断由指令触发.55x在中断时DSP会自动保存ST0_55.ST1_55.ST2_55三个寄存器. 2. 其中 ...

  3. CC2541广播机制和代码分析(未完成)

    1. 广播通道有3个,是固定的吗?设备为了节省功耗,可以忽略掉几个应答? 连接间隔可以是7.5ms到4s内的任意值,但必须是1.25ms的整数倍,从设备延迟,实际上是一个连接间隔的倍数,代表从设备在必 ...

  4. LVS Nginx HAProxy

    转自:http://blog.chinaunix.net/uid-27022856-id-3236257.html LVS 优点:1.抗负载能力强.工作在第4层仅作分发之用,没有流量的产生,这个特点也 ...

  5. 如何去除Eclipse下的JS引入报错(类似Syntax error on token...的异常信息)

    在Eclipse下引入外部JS文件,比如Jquery.js,经常会出现如下异常信息: 去除该异常方法: 1. 去掉Eclipse的JS验证 Windws---->Preferences----& ...

  6. 「日常训练」Regular Bridge(Codeforces Round 306 Div.2 D)

    题意与分析 图论基础+思维题. 代码 #include <bits/stdc++.h> #define MP make_pair #define PB emplace_back #defi ...

  7. 消费者用nginx做负载均衡,提供者用zookeeper自带功能实现负载均衡

    公司的项目基于阿里的Dubbo微服务框架开发.为了符合相关监管部门的安全要求,公司购买了华东1.华东2两套异地服务器,一套是业务服务器,一套是灾备服务器.准备在这两套服务器上实现Dubbo的分布式服务 ...

  8. 第六章 高级I/O函数

    第六章 高级I/O函数 6.1 pipe函数 即管道函数,用于进程间的通信. #include<unistd.h> int pipe(int fd[2]); // fd:filedes / ...

  9. unity中虚拟摇杆的实现

    实现效果: 实现: 使用NGUI添加虚拟摇杆背景和其子物体按钮,为按钮Attach  boxcollider和ButtionScript.为按钮添加如下脚本: 注意:其中的静态属性可以在控制物体移动的 ...

  10. 树和二叉树 -数据结构(C语言实现)

    读数据结构与算法分析 树的概念 一棵树是一些节点的集合,可以为空 由称做根(root)的节点以及0个或多个非空子树组成,子树都被一条来自根的有向边相连 树的实现 思路 孩子兄弟表示法:树中的每个节点中 ...