comm命令对两个已经排好序的文件进行逐行比较,只显示它们共有的行 comm [-1231] 文件1 文件2
时间: 2024-01-22 09:19:18 浏览: 26
是的,你说的很对。`comm` 命令可以用于比较两个已经排好序的文件,并显示它们共有的行、仅在第一个文件中出现的行以及仅在第二个文件中出现的行。
该命令的用法如下:
```
comm [-123] file1 file2
```
其中,`-1` 表示不显示仅在第一个文件中出现的行;`-2` 表示不显示仅在第二个文件中出现的行;`-3` 表示不显示共有的行。如果不加任何参数,则默认显示三列,分别为仅在第一个文件中出现的行、仅在第二个文件中出现的行以及共有的行。
注意,`comm` 命令要求输入的文件必须是已经排好序的,否则比较结果可能不正确。
相关问题
comm [-1231] 文件1 文件2
`comm` 是一个 Linux 命令,用于比较两个已排序的文件行并打印它们之间的区别。该命令支持以下选项:
- `-1`:不输出只在第一个文件中出现的行。
- `-2`:不输出只在第二个文件中出现的行。
- `-3`:不输出两个文件共有的行。
- `-i`:忽略大小写。
- `-d`:仅显示两个文件都存在的行。
- `-u`:仅显示两个文件中独有的行。
因此,`comm -1231 文件1 文件2` 的含义是:比较 `文件1` 和 `文件2`,不输出只在第一个文件中出现的行,不输出只在第二个文件中出现的行,不输出两个文件共有的行,但输出只在第一个文件中出现的行的行号。
Linux怎么将文件排序好从而进行comm命令
Linux提供了多种命令可以对文件进行排序,如`sort`、`uniq`等。可以使用`sort`命令将需要比较的两个文件进行排序,再通过`comm`命令进行比较。
例如,假设我们有两个文件file1和file2,我们需要比较这两个文件中的内容,并找出它们的交集和差集。我们可以使用以下命令:
```
sort file1 > sorted_file1
sort file2 > sorted_file2
comm sorted_file1 sorted_file2
```
第一行和第二行分别使用`sort`命令将file1和file2中的内容排序,并将结果输出到sorted_file1和sorted_file2文件中。第三行使用`comm`命令比较这两个文件,并输出它们的交集和差集。
`comm`命令的输出包括三列,第一列为只存在于第一个文件中的行,第二列为只存在于第二个文件中的行,第三列为两个文件中都存在的行。如果想要只输出某一列的内容,可以使用`-1`、`-2`或`-3`选项,例如:
```
comm -12 sorted_file1 sorted_file2 # 只输出两个文件中都存在的行
```
这样就可以得到文件的交集。