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) 访问次数:两张表都只会访 ...
随机推荐
- Iframe 高度自适应,js控制Iframe 高度自适应
Iframe 高度自适应, js控制Iframe 高度自适应, iframe自适应高度 ================================ ©Copyright 蕃薯耀 2019年12 ...
- 微信小程序 - height: calc(xx - xx);无效
遇到一个小问题,记录一下 问题:在微信小程序中使用scroll-view标签时,用height:cale(xx - xx)设置高度无效,在page中设置高度为百分百依旧无效 解决办法:直接在父级vie ...
- 线性递推BM模板
#include <cstdio> #include<iostream> #include <cstring> #include <cmath> #in ...
- java 面试架构篇
1.非功能需求会考虑哪些? 可用性.扩展性.性能: 2.有没有遇到过建了索引反而变慢的情况? 3.从哪些角度去设计系统? 4.代码中使用过的设计模式?
- electron-vue + element-ui构建桌面应用
最近需要用Node.js做一个桌面的应用,了解到electron可以用来做跨平台的桌面应用,而vue可以用来作为界面的解决方案,研究了一会儿如何把他们两个整合到一起使用,遇到了各种问题而放弃,毕竟作为 ...
- Linux中Oracle启动侦听报错TNS:permission denied的解决方法
最近在开发环境 oracle 启动侦听的时候,出现了 TNS:permission denied 的问题,通过网上和咨询朋友,最终找到了解决方案,现在共享出来给有需要的朋友. [oracle@orac ...
- EFCore.BulkExtensions Demo
最近做了一个项目,当用EF传统的方法执行时,花时4小时左右,修改后,时间大大减少到10分钟,下面是DEMO实例 实体代码: public class UserInfoEntity { [Key] pu ...
- Java开发中模拟接口工具moco的使用
场景 在开发中需要依赖一些接口,比如需要请求一个返回Json数据的接口,但是返回Json数据的接口要么是没搭建,要么是交互比较复杂. 此时,就可以使用moco来模拟接口返回接口数据,以便开发和测试工作 ...
- mybatis-01-简单概述基础点
1.mybatis的优点 mybatis:半自动化持久化框架 sql(专注数据)和java编码(专注业务)分离 可使用简单的xml或者注解用于配置和原始映射 将接口和java中的pojo映射成数据库中 ...
- RHEL6-HA集群在VMware虚拟机环境安装配置文档
(一)系统环境描述 本文档基于RHEL6u5 系统安装,配置为2节点高可用集群,节点为两台VMware虚拟机. 也可参考http://blog.51cto.com/ty1992/1325327 (二) ...