Linux的uniq和diff命令

有两个有用的文件内容相关的命令,这里复习脑补一下。算法


uniq命令ide

uniq [选项] 文件函数

说明:这个命令读取输入文件,并比较相邻的行。在正常状况下,第二个及之后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不一样。若是输入文件用“- ”表示,则从标准输入读取。spa

该命令各选项含义以下:、排序

– c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。ip

– d 只显示重复行。字符串

– u 只显示文件中不重复的各行。it

– n 前n个字段与每一个字段前的空白一块儿被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。io

+n 前n个字符被忽略,以前的字符被跳过(字符从0开始编号)。file

– f n 与- n相同,这里n是字段数。

– s n 与+n相同,这里n是字符数。


咱们看一组简单的例子。

diff命令:

diff[参数][文件1或目录1][文件2或目录2]

命令功能:

diff命令能比较单个文件或者目录内容。若是指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。若是指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不一样的二进制文件、公共子目录和只在一个目录出现的文件。

命令参数:

指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。

-a或--text  diff预设只会逐行比较文本文件。

-b或--ignore-space-change  不检查空格字符的不一样。

-B或--ignore-blank-lines  不检查空白行。

-c  显示所有内文,并标出不一样之处。

-C或--context  与执行"-c-"指令相同。

-d或--minimal  使用不一样的演算法,以较小的单位来作比较。

-D或ifdef  此参数的输出格式可用于前置处理器巨集。

-e或--ed  此参数的输出格式可用于ed的script文件。

-f或-forward-ed  输出的格式相似ed的script文件,但按照原来文件的顺序来显示不一样处。

-H或--speed-large-files  比较大文件时,可加快速度。

-l或--ignore-matching-lines  若两个文件在某几行有所不一样,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差别。

-i或--ignore-case  不检查大小写的不一样。

-l或--paginate  将结果交由pr程序来分页。

-n或--rcs  将比较结果以RCS的格式来显示。

-N或--new-file  在比较目录时,若文件A仅出如今某个目录中,预设会显示:Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。

-p  若比较的文件为C语言的程序码文件时,显示差别所在的函数名称。

-P或--unidirectional-new-file  与-N相似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件作比较。

-q或--brief  仅显示有无差别,不显示详细的信息。

-r或--recursive  比较子目录中的文件。

-s或--report-identical-files  若没有发现任何差别,仍然显示信息。

-S或--starting-file  在比较目录时,从指定的文件开始比较。

-t或--expand-tabs  在输出时,将tab字符展开。

-T或--initial-tab  在每行前面加上tab字符以便对齐。

-u,-U或--unified=  以合并的方式来显示文件内容的不一样。

-v或--version  显示版本信息。

-w或--ignore-all-space  忽略所有的空格字符。

-W或--width  在使用-y参数时,指定栏宽。

-x或--exclude  不比较选项中所指定的文件或目录。

-X或--exclude-from  您能够将文件或目录类型存成文本文件,而后在=中指定此文本文件。

-y或--side-by-side  以并列的方式显示文件的异同之处。

--help  显示帮助。

--left-column  在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。

--suppress-common-lines  在使用-y参数时,仅显示不一样之处。

相关文章
相关标签/搜索