sort、uniq 、 join 、 comm、diff 、 patch 、df、du 和 time 命令的用法
1 sort 命令
同文本文件打交道时,总避不开排序,那是因为对于文本处理任务而言,排序(sort)可以起到不小的作用。sort 命令能够帮助我们对文本文件和 stdin 进行排序操作。通常,它会结合其他命令来生成所需要的输出。
(1)命令格式
sort [选项] [文件名]
(2)常用参数
| 参数 | 描述 | 
|---|---|
| -n | 基于字符串的长度来排序,使用此选项允许根据数字值排序,而不是字母值 | 
| -k | 指定排序关键字 | 
| -b | 默认情况下,对整行进行排序,从每行的第一个字符开始。这个选项导致 sort 程序忽略每行开头的空格,从第一个非空白字符开始排序 | 
| -m | 只合并多个输入文件 | 
| -r | 按相反顺序排序,结果按照降序排列,而不是升序 | 
| -t | 自定义分隔符,默认为制表符 | 
2 uniq 命令
uniq 命令经常和 sort 命令结合在一起使用。uniq 从标准输入或单个文件名参数接受数据有序列表,默认情况下,从数据列表中删除任何重复行。
uniq 只能用于排过序的数据输入,因此,uniq 要么使用管道,要么将排过序的文件作为输入,并总是以这种方式与 sort 命令结合起来使用。
uniq 命令是 unique 的缩写。
(1)命令格式
uniq [选项] [文件名]
(2)常用参数
| 参数 | 描述 | 
|---|---|
| -c | 在每行前加上表示相应行目出现次数的前缀编号 | 
| -d | 只输出重复的行 | 
| -u | 只显示唯一的行 | 
| -D | 显示所有重复的行 | 
| -f | 比较时跳过前 n 列 | 
| -i | 在比较的时候不区分大小写 | 
| -s | 比较时跳过前 n 个字符 | 
| -w | 对每行第 n 个字符以后的内容不作对照 | 
3 join 命令
join 命令类似于 paste,它会往文件中添加列,但是它使用了独特的方法来完成。一个 join 操作通常与关系型数据库有关联,在关系型数据库中来自多个享有共同关键域的表格的数据结合起来,得到一个期望的结果。这个 join 命令执行相同的操作,它把来自于多个基于共享关键域的文件的数据结合起来。
通俗地说,就是将两个文件中指定栏位相同的行连接起来,即按照两个文件中共同拥有的某一列,将对应的行拼接成一行。
(1)命令格式
join [选项] 文件 1 文件 2
(2)常用参数
| 参数 | 描述 | 
|---|---|
| -j FIELD | 等同于 -1 FIELD -2 FIELD,-j 指定一个域作为匹配字段 | 
| -1 FIELD | 以 file1 中 FIELD 字段进行匹配 | 
| -2 FIELD | 以 file2 中 FIELD 字段进行匹配 | 
| -t | 自定义分隔符,默认为制表符 | 
4 comm 命令
通常比较文本文件的内容很有帮助。对于系统管理员和软件开发者来说,这个尤为重要。一名系统管理员可能,例如,需要拿现有的配置文件与先前的版本做比较,来诊断一个系统错误。同样的,一名程序员经常需要查看程序的修改。
comm 命令将逐行比较已经排序的两个文件。显示结果包括 3 列:第 1 列为只在第一个文件中找到的行,第 2 列为只在第二个文件中找到的行,第 3 列为两个文件的共有行。
注意,comm 命令和 join、uniq 命令一样,只能用于已经排过序的数据。
(1)命令格式
comm [选项] 文件 1 文件 2
(2)常用参数
| 参数 | 描述 | 
|---|---|
| -1 | 不输出文件 1 特有的行 | 
| -2 | 不输出文件 2 特有的行 | 
| -3 | 不输出两个文件共有的行 | 
5 diff 命令
类似 comm 命令,diff 命令被用来监测文件之间的差异。然而,diff 是一款更加复杂的工具,它支持许多输出格式,并且一次能处理许多文本文件。软件开发员经常使用 diff 程序来检查不同程序源码版本之间的更改,diff 能够递归地检查源码目录,经常称之为源码树。diff 程序的一个常见用例是创建 diff 文件或者补丁,它会被其它程序使用,例如 patch 程序(我们后面会讲到),来把文件从一个版本转换为另一个版本。
diff 在命令行中打印每一个行的改动,并且 diff 是 svn、cvs、git 等版本控制工具不可或缺的一部分。
diff 命令是 differential 的缩写。
(1)命令格式
diff [选项] 文件
(2)常用参数
| 参数 | 描述 | 
|---|---|
| -c | 上下文模式,显示全部内文,并标出不同之处 | 
| -u | 统一模式,以合并的方式来显示文件内容的不同 | 
| -a | 只会逐行比较文本文件 | 
| -N | 在比较目录时,若文件 A 仅出现在某个目录中,预设会显示:Only in 目录。 若使用-N 参数,则 diff 会将文件 A 与一个空白的文件比较 | 
| -r | 递归比较目录下的文件 | 
6 patch 命令
patch 命令被用来把更改应用到文本文件中。它接受从 diff 程序的输出,并且通常被用来把较老的文件版本转变为较新的文件版本。让我们考虑一个著名的例子。Linux 内核是由一个大型的,组织松散的贡献者团队开发而成,这些贡献者会提交固定的少量更改到源码包中。这个 Linux 内核由几百万行代码组成,虽然每个贡献者每次所做的修改相当少。对于一个贡献者来说,每做一个修改就给每个开发者发送整个的内核源码树,这是没有任何意义的。相反,提交一个 diff 文件。一个 diff 文件包含先前的内核版本与带有贡献者修改的新版本之间的差异。然后一个接受者使用 patch 程序,把这些更改应用到他自己的源码树中。使用 diff/patch 组合提供了两个重大优点:
- 一个 diff 文件非常小,与整个源码树的大小相比较而言。 
- 一个 diff 文件简洁地显示了所做的修改,从而允许程序补丁的审阅者能快速地评估它。 
当然,diff/patch 能工作于任何文本文件,不仅仅是源码文件。它同样适用于配置文件或任意其它文本。
准备一个 diff 文件供 patch 命令使用,GNU 文档建议这样使用 diff 命令:
diff -Naur old_file new_file > diff_file
old file 和 new file 部分不是单个文件就是包含文件的目录。这个 r 选项支持递归目录树。
(1)命令格式
patch [选项] 补丁文件
(2)常用参数
| 参数 | 描述 | 
|---|---|
| -p num | 忽略几层文件夹 | 
| -E | 如果发现了空文件,那么就删除它 | 
| -R | 取消打过的补丁 | 
7 df 命令
linux 中 df 命令的功能是用来检查 linux 服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
df 命令是 disk free 的缩写。
(1)命令格式
df [选项] 文件
(2)常用参数
| 参数 | 描述 | 
|---|---|
| -a | 全部文件系统列表 | 
| -h | 方便阅读方式显示 | 
| -i | 显示 inode 信息 | 
| -T | 文件系统类型 | 
| -t<文件系统类型> | 只显示选定文件系统的磁盘信息 | 
| -x<文件系统类型> | 不显示选定文件系统的磁盘信息 | 
8 du 命令
linux 中 du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看。
du 命令是 disk usage 的缩写。
(1)命令格式
du [选项] 文件
(2)常用参数
| 参数 | 描述 | 
|---|---|
| -a | 显示目录中个别文件的大小。 | 
| -b | 显示目录或文件大小时,以 byte 为单位。 | 
| -c | 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 | 
| -k | 以 KB(1024bytes)为单位输出。 | 
| -m | 以 MB 为单位输出。 | 
| -s | 仅显示总计,只列出最后加总的值。 | 
| -h | 以 K,M,G 为单位,提高信息的可读性 | 
3 time 命令
time 命令常用于测量一个命令的运行时间,包括实际使用时间(real time)、用户态使用时间(the process spent in user mode)、内核态使用时间(the process spent in kernel mode)。
实际时间: 从 command 命令行开始执行到运行终止的时间。
用户态使用时间:命令执行完成花费的用户 CPU 时间,即命令在用户态中执行时间总和。
内核态使用时间:命令执行完成花费的系统 CPU 时间,即命令在核心态中执行时间总和。
(1)命令格式
time 命令
sort、uniq 、 join 、 comm、diff 、 patch 、df、du 和 time 命令的用法的更多相关文章
- 转-Shell笔记——命令:Sort,uniq,join,cut,paste,split
		转自:http://blog.csdn.net/wklken/article/details/6562098 Sort,uniq,join,cut,paste,split 命令—— Sort Sort ... 
- 4、linux-grep awk sed  and cuf sort uniq join
		1.grep 1.1 grep [-invc] [--color=auto] '搜寻字符串' filename选项与参数:-i :忽略大小写的不同-n :顺便输出行号-v :显示没有 '搜寻字符串' ... 
- df du 文件空间管理 命令
		df 可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力. du 可以查看文件及文件夹的大小. df:常用 df -h 以易读形式显示 磁盘空间 linux ... 
- 几个简单的文本处理工具:diff,patch,grep,cut,sort,tr
		1:文本处理工具: 1:diff and patch : diff是比较文件或者目录的不同,主要有3个用法: diff file1 file2 :比较file1和file2的不同:diff -u ... 
- 线上问题debug过程(cat,grep,tr,awk,sort,uniq,comm等工具的综合使用)
		问题:发现线上到货单的数量,小于实际到货的数量. 怀疑一些隐藏的条件,将部分唯一码进行了过滤,导致数量变少. 开展了如下的跟踪流程: 1.找到其中一个明细的唯一码 grep 6180e-4b09f p ... 
- Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs
		在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ... 
- df du
		df命令详细用法 a:显示全部的档案系统和各分割区的磁盘使用情形 i:显示i -nodes的使用量 k:大小用k来表示 (默认值) t:显示某一个档案系统的所有分割区磁盘使用量 x:显示不是某一个档案 ... 
- 文本处理命令 cat more less cut wc sort uniq
		1.cat cat主要功能: 1.一次显示整个文件. cat filename 2.从键盘创建一个文件. cat > filename (只能创建新文件,不能编辑已有文件). 1 ... 
- 排序合并连接(sort merge join)的原理
		排序合并连接(sort merge join)的原理 排序合并连接(sort merge join)的原理 排序合并连接(sort merge join) 访问次数:两张表都只会访 ... 
随机推荐
- c#修改项目名称
			1.修改解决方案名称 右键,重命名 2.修改项目名称 右键,重命名 3.修改程序集名称和默认命名空间 项目,属性 4.替换解决方案中的名称 编辑,替换,替换范围默认整个解决方案 5.用记事本打开.sl ... 
- python正则非贪婪模式
			上一篇python正则匹配次数大家应该也发现了,除了?其他匹配次数规则都是尽可能多的匹配 那如果只想匹配1次怎么办呢,这就是正则中非贪婪模式的概念了 原理就是利用?与其他匹配次数规则进行组合 单个匹配 ... 
- Tinyhttp源码分析
			简介 Tinyhttp是一个轻量型Http Server,使用C语言开发,全部代码只500多行,还包括一个简单Client. Tinyhttp程序的逻辑为:一个无线循环,一个请求,创建一个线程,之后线 ... 
- CentOS7更换阿里yum源
			更换之前确保自己安装wget yum list wget 若没有安装: yum -y install wget 首先备份原版/etc/yum.repos.d/CentOS-Base.repo cd / ... 
- 6_14 Abbott的复仇(UVa816)<图的最短路BFS>
			1999次世界总决赛的比赛包括一个骰子迷宫问题.在这个问题被写的时候,法官们无法发现骰子迷宫概念的原始来源.不久之后的比赛,但是,罗伯特先生雅培,无数的迷宫和对作者的创造者主题,联系大赛评委,自称是骰 ... 
- spring_boot 中通过PageHelper分页
			1. 第一步 导入pom.xml依赖 <!--PageHelper模版--> <!--PageHelper模版--> <dependency> <groupI ... 
- Bugku-CTF分析篇-flag被盗(flag被盗,赶紧溯源!)
			flag被盗 flag被盗,赶紧溯源! 
- 版本控制gitlab
			目录 1. 版本控制介绍 2. gitlab部署 3. gitlab管理 1. 版本控制介绍 版本控制是指对软件开发过程中各种程序代码.配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一 ... 
- C#常用集合
			数组的缺点:长度固定.因此引入集合的使用. 注:泛型集合更安全,性能更高. 常用集合 对应泛型 ①动态数组ArrayList List<T> 常用方法属性:Add Clear C ... 
- qxdm,qpst,qcat抓包分析VoLTE SIP协商包
			QXDM,QPST和QCAT是Qualcomm高通公司针对高通芯片的抓包分析工具. QXDM抓包分析,QPST与手机com口连接,QCAT用来分析抓包产生的isf文件(log). 使用版本: QXDM ... 
