cmp命令
用法
1 | cmp file1 file2 |
功能
- 逐字节比较两个文件是否完全相同
- 两个文件完全相同时,不给出任何提示
- 两个文件不同时,打印出第一个不同之处
- 在Windows中有类似的命令COMP
cmp命令用来比较两个文件是否有差异。
- 当相互比较的两个文件完全一样时,则该指令不会显示任何信息。
- 若发现有差异,预设会标示出第一个不通之处的字符和列数编号。
- 若不指定任何文件名称或是所给予的文件名为“-”,则cmp指令会从标准输入设备读取数据。
https://github.com/cheat/cheat
1 | [root@localhost sed]# cheat tar |
元字符 | 说明 |
---|---|
* |
将* 前面的正则表达式匹配的结果重复任意次(含0次)。 |
\+ |
与星号(* )相同,只是至少重复1次,GNU的扩展功能。 |
\? |
与星号(* )相同,只是最多重复1次,GNU的扩展功能。 |
\{i\} |
与星号(* )相同,只是重复指定的i次。 |
\{i,j\} |
与星号(* )相同,只是重复i至j次。 |
\{i, \} |
与星号(* )相同,只是至少重复i次。 |
\(regexp\) |
将regexp看作一个整体,用于后向引用,与\digit 配合使用。 |
. |
匹配任意单个字符。 |
^ |
匹配模版空间开始处的NULL字符串。 |
$ |
匹配的是模版空间结束处的NULL字符串。 |
[list] |
匹配方括号中的字符列表中的任意一个。 |
[^list] |
否定匹配方括号中的字符列表中的任意一个。 |
regexp1\|regexp2 |
用在相邻的正则表达式之间,表示匹配这些正则表达式中任一个都可以。匹配是从左向右开始的,一旦匹配成功就停止匹配。 |
regexp1|regexp2 |
匹配regexp1和regexp2的连接结果。 |
\digit |
匹配正则表达式前半部分定义的后向引用的第digit个子表达式。digit为1至9的数字, 1为从左开始。 |
\n |
匹配换行符。 |
\meta |
将元字符meta转换成普通字符,以便匹配该字符本身,有$ 、 * 、 . 、 [ 、 \ 和 ^ 。 |
在学习 sed 命令的基础功能时,你可能注意到了一个局限,即所有的 sed 命令都只是针对单行数据执行操作,在 sed 命令读取缓冲区中的文本数据时,它会基于换行符的位置,将数据分成行,sed 会根据定义好的脚本命令一次处理一行数据。
但是,有时我们需要对跨多行的数据执行特定操作。比如说,在文本中查找一串字符串”http://c.biancheng.net",它很有可能出现在两行中,每行各包含其中一部分。这时,如果用普通的 sed 编辑器命令来处理文本,就不可能发现这种被分开的情况。