comm、diff命令详解
comm命令用来对两个己排序文件进行逐行比较.
其中,filel和fileZ是已经排好序的文件.comm从这两个文件中读取正文行,进行比较,最后生成三列输出:
仅在filel中出现的行,仅在file2中出现的行,在两个文件中都存在的行.如果文件名为”-“则表示从标准输入读取.
一般格式:
1 | comm [-123] file1 file2 |
选项:
1 | -123 选项1,2和3分别表示不显示comm输出中的第一列、第二列和第三列. |
示例:
1 | $ comm -12 m1 m2 (比较文件ml和m2,并且只显示它们共有的行) |
diff命令比较两个文本文件,并找出它们的不同.它比comm命令完成更复杂的检查,并且不要求两个文件预先排好序.该命令逐行比较两个文件,列出它们的不同之处,并且告诉用户,为了使两个文件一致,需要修改它们的哪些行.如果两个文件完全一样,则该命令不显示任何输出.
1 | 一般格式:diff [选项] file1 file2 |
该命令输出的一般形式如下:
1 | n1 a n3, n4 (表示把文件1的n1行附加到文件2的n3~n4行后,则二者相同) |
在上述形式的每一行的后面跟随受到影响的若干行,以””打头的行属于文件file2.diff命令能区分块特别文件、字符特别文件及FIFO(管道文件),不会把它们与普通文件进行比较.
选项:
1 | -b 忽略空格造成的差别.例如,"How are you"与"How are you "被看做是相同的字符串. |
注意:如果用”一”表示文件flle1或文件file2,则意味着标准输入.如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较.如果file1和file2都是目录,则diff会产生很多信息.如果一个目录中只有一个文件,则产生一条信息,指出该目录路径名和其中的文件名.