diff
diff 就是用在比对两个文件之间的差异的,并且是以行为单位来比对的。举例来说,假如我们要将 /etc/passwd 处理成为一个新的版本,处理方式为: 将第四行删除,第六行则取代成为“no six line”,新的文件放置到 /tmp/test 里面,那么应该怎么做?
cmp
相对于 diff 的广泛用途, cmp 似乎就用的没有这么多了。cmp 主要也是在比对两个文件,他主要利用“字节”单位去比对, 因此,当然也可以比对 binary file。
11.5 重点回顾
正则表达式就是处理字串的方法,他是以行为单位来进行字串的处理行为;
正则表达式通过一些特殊符号的辅助,可以让使用者轻易的达到“搜寻/删除/取代”某特定字串的处理程序;
只要工具程序支持正则表达式,那么该工具程序就可以用来作为正则表达式的字串处理之用;
正则表达式与万用字符是完全不一样的东西!万用字符 (wildcard) 代表的是 bash 操作接口的一个功能, 但正则表达式则是一种字串处理的表示方式!
使用 grep 或其他工具进行正则表达式的字串比对时,因为编码的问题会有不同的状态,因此, 你最好将 LANG 等变量设置为 C 或者是 en 等英文语系!
grep 与 egrep 在正则表达式里面是很常见的两支程序,其中, egrep 支持更严谨的正则表达式的语法;
由于编码系统的不同,不同的语系 (LANG) 会造成正则表达式撷取数据的差异。因此可利用特殊符号如 [:upper:] 来替代编码范围较佳;
由于严谨度的不同,正则表达式之上还有更严谨的延伸正则表达式;
基础正则表达式的特殊字符有: *, ., [], [-], , ^, $ 等!
常见的支持正则表达式的工具软件有: grep , sed, vim 等等
printf 可以通过一些特殊符号来将数据进行格式化输出;
awk 可以使用“字段”为依据,进行数据的重新整理与输出;
文件的比对中,可利用 diff 及 cmp 进行比对,其中 diff 主要用在纯文本方面的新旧版本比对
patch 指令可以将旧版数据更新到新版 (主要亦由 diff 创建 patch 的补丁来源文件)