comm命令可以用于两个文件之间的比较,它有一些选项可以用来调整输出,以便执行交集、求差、以及差集操作,下面为大家讲解一下Linux comm命令
使用实例。
1.如何使用comm比较两个排序的文件
要使用’comm’比较两个排序的文件,您只需要将其名称作为参数传递给命令行工具即可。 以下是通用语法:
comm [name-of-first-file] [name-of-second-file]
例如,假设“file1”和“file2”是我们这两个文件。 前者包含以下内容:
001
056
127
258
而后者包含以下行:
002
056
167
369
现在,这里是’comm’命令输出在这种情况下:
comm file1 file2
所以你可以看到输出由三列组成。 第一个包含’file1’唯一的行,第二个包含’file2’唯一的行,最后,列3包含两个文件共同的行。
2.如何在comm命令输出中抑制各个列
如果需要,可以在comm命令输出中抑制各列。 为此,您有三个命令行选项: -1 , -2***和-3*** 。 正如您所猜测的,这些数字代表您要抑制的列。
例如,我们的命令就是压制第三列:
comm -3 file1 file2
所以你可以看到第三列被压制了。
请注意,您可以使用单个命令抑制多个列。 例如:
comm -12 file1 file2
将抑制第一列和第二列。
3.如何使comm比较未排序的文件
我们知道,comm命令只适用于排序的文件。 如果发现文件未被排序,则在输出中生成一条消息,告知用户有关此信息。 例如,我们将第一行和第二行交换在“file1”中,然后将其与“file2”进行比较。 输出结果如下:
所以你可以看到命令产生一个输出,说’file1’没有被排序。 现在,如果您不希望该工具检查输入是否排序,可以使用***–nocheck-order***选项。
comm –nocheck-order file1 file2
所以你可以看到早先显示的消息被抑制了。
请注意,如果要明确告知comm命令对输入文件进行排序检查,可以使用***–check-order***选项。
如何用自定义字符串分隔comm输出列
默认情况下,comm命令输出中的列用空格分隔。 但是,如果需要,您可以更改它,并将您选择的字符串作为分隔符。 这可以使用***–output-delimiter***选项来完成。 此选项要求您指定要用作分隔符的字符串。
comm –output-delimiter=STR file1 file2
例如,我们使用加号(+)作为分隔符。
如何使comm输出行NUL终止
默认情况下,comm命令输出行被换行。 但是,如果你愿意,你可以使它们NUL被终止。 这可以使用***-z***命令行选项来完成。
comm -z file1 file2
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !