linux文本处理三


diff

diff命令用来显示文件之间的差异。diff支持多种输出格式,同时diff一次能处理许多文件。

diff一般被用来检测多个版本源代码之间的更改,然后将旧版本转变成新版本,diff还能递归的检查源码目录,称为源码树。diff命令的一个常见的应用就是创建diff文件或者补丁,然后使用patch程序将文件从一个版本转换成另外一个版本。

\

\

\

\

diff默认输出解析

在默认的输出中,每一组更改之前都是一条更改命令,命令格式是:<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ob7Urcq8zsS8/rXE0NC6xbvy1d/Q0LXEt7bOp6G/ob7Q0M6qob+hvsS/serOxLz+tcTQ0LrFu/LV39DQtcS3ts6nob88L3A+CjxwPtXiwO+1xNDQzqq/ydLUysfS1M/CyP3W1qO6PC9wPgo8cD4xLmGx7cq+ttTUrcq8zsS8/r340NDQ0NDC1PY8L3A+CjxwPjIuZLHtyr621NStyrzOxLz+vfjQ0NDQyb6z/TwvcD4KPHA+My5jse3KvrbU1K3KvM7EvP69+NDQ0N64xDwvcD4KPHA+cjFhcjKjurDRtdq2/rj2zsS8/tbQzrvWwyByMiC0prXEzsS8/tDQzO2807W9tdrSu7j2zsS8/tbQtcRyMSC0pqGjPGJyPgpyMWNyMqO608O12rb+uPbOxLz+1tDOu9bDIHIyILSmtcTOxLG+0NC4/LjEo6jM5rT6o6nOu9bDIHIxILSmtcTOxLG+0NChozxicj4KcjFkcjKjusm+s/212tK7uPbOxLz+1tDOu9bDIHIxILSmtcTOxLG+0NCjrNXi0KnOxLG+0NC9q7vhs/bP1tTatdq2/rj2zsS8/tbQzrvWwyByMiC0pqGjPC9wPgo8cD4mcXVvdDsmbHQ7JnF1b3Q7se3KvtDo0qrJvrP9tcTQ0DwvcD4KPHA+JnF1b3Q7Jmd0OyZxdW90O7Htyr7Q6NKq0MLU9rXE0NA8L3A+Cgo8cD6z/cHLxKzIz7XEyuSz9iYjMjY2ODQ7yr2jrMrks/a7udPQyc/Pws7ExKPKvaOovavUtM7EvP66zcS/serOxLz+t9a/qtW5yr6jqbrNzbPSu8Sjyr2jqL2r1LTOxLz+us3Ev7HqzsS8/r3hus/Vucq+o6mhozwvcD4KPHA+yc/Pws7ExKPKvaO6yc/Pws7ExKPKvcq508MtY9Ghz+7AtNa4tqijqGNvbnRleHSjqTwvcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20150409/20150409100405111.jpg" alt="\">

第一个文件的内容使用*来标识,第二个文件的内容使用-来标识。

blank:上下文显示行。它并不表示两个文件之间的差异。- :删除行。这一行将会出现在第一个文件中,而不是第二个文件内。+:添加行。这一行将会出现在第二个文件内,而不是第一个文件中。! :更改行。将会显示某个文本行的两个版本,每个版本会出现在更改组的各自部分。 统一模式:统一模式使用-u选项来指定(uniform) \

blank:两个文件都包含这一行。-:在第一个文件中删除这一行。+:添加这一行到第一个文件中。 使用diff和patch将文件从一般版本转换成新的版本

diff -Naur old_file new_file > diff_file (u:unified,a:text,N:num,r:recursive)patch < diff_file \

从上图可以看出,当使用patch将原始文件转换后,再使用diff命令比较旧文件和目标文件不会产生diff信息。

tr

tr命令是基于字符的查找和替换操作。tr从标准输入接收数据,将处理过的数据输出到标准输出。

tr的用法是:tr 【选项】 【原始字符集合】 【目标字符集合】

基本的选项如下:

-d:删除原始字符集合中的字符-c:用目标字符集合中的字符去替换原始的字符集合-s:将标准输入中的数据按照原始集合的字符进行压缩 字符集合可以有以下三种表示方法: 枚举列表:ABCDEFGHIJKLMNOPQRSTUVWXYZ字符域:A-Z 。注意这种方法有时候面临与其它命令相同的问题,归因于语系的排序规则,因此应该谨慎使用。POSIX 字符类:[:upper:] tr的其中一个用法就是删除dos文件中的^M,命令为 tr -d "\r' filename

相关内容