linux命令comm的用法
-
comm命令是Linux系统中的一个文本处理工具,用于比较两个已排序文件的差异,并输出相应结果。
comm命令的基本用法如下:
comm [选项] 文件1 文件2选项:
-1:只显示出存在于文件1中的行
-2:只显示出存在于文件2中的行
-3:只显示出同时存在于文件1和文件2中的行
-c:同时显示出存在于文件1和文件2中的行,并计算行数
-d:仅显示出存在差异的行
-u:只输出存在于文件1和文件2中的唯一行
-12:取消默认的左对齐输出下面具体介绍一下这些选项的用法:
1. comm -1 文件1 文件2
该命令会显示存在于文件1中的行,即文件1中独有的行。2. comm -2 文件1 文件2
该命令会显示存在于文件2中的行,即文件2中独有的行。3. comm -3 文件1 文件2
该命令会显示同时存在于文件1和文件2中的行。4. comm -c 文件1 文件2
该命令会显示同时存在于文件1和文件2中的行,并且还会计算行数。5. comm -d 文件1 文件2
该命令会仅显示存在差异的行,即只输出不同的行。6. comm -u 文件1 文件2
该命令会显示存在于文件1和文件2中的唯一行,即不重复的行。7. comm -12 文件1 文件2
该命令会取消默认的左对齐输出,使输出结果更紧凑。需要注意的是,使用comm命令进行文件比对之前,文件必须是经过排序的,可以使用sort命令进行排序。
以上就是comm命令的基本用法,通过这些选项可以根据不同的需求进行文件差异比对和数据筛选。
2年前 -
comm命令是一个用于比较两个已排序文件的Linux命令。它根据文件的行内容对文件进行比较,并根据比较结果生成三个列出的结果文件。以下是comm命令的一些常见用法。
1. 比较两个文件的差异:comm命令通常用于比较两个已排序的文件,并找出它们之间的差异。比如,我们有两个文件file1.txt和file2.txt,可以使用以下命令来比较它们的差异:
comm file1.txt file2.txt这将输出三列结果,第一列显示只在file1.txt中出现的行,第二列显示只在file2.txt中出现的行,第三列显示两个文件中共同出现的行。
2. 显示唯一的行:comm命令也可以用来显示两个文件中的唯一行。要显示只在一个文件中出现的行,可以使用-n参数,后跟文件的位置。例如:
comm -23 file1.txt file2.txt这将只显示在file1.txt中出现的行,而不显示在file2.txt中出现的行。
3. 忽略空格进行比较:默认情况下,comm命令会考虑两个文件中的空格,并将其视为差异。但是,可以使用-i参数来忽略空格,只比较实际的字符。例如:
comm -i file1.txt file2.txt这将忽略file1.txt和file2.txt中的空格,并只比较实际的字符。
4. 指定分隔符:comm命令默认以制表符为分隔符,但可以使用-d参数来指定不同的分隔符。例如,如果要使用空格作为分隔符,可以使用以下命令:
comm -d file1.txt file2.txt这将使用空格作为分隔符来比较file1.txt和file2.txt。
5. 输出不同的行号格式:默认情况下,comm命令会在输出的每一行前面添加一个制表符和行号。但是,可以使用–nocheck-order参数来禁用行号的输出。例如:
comm –nocheck-order file1.txt file2.txt这将禁用行号的输出,并且仅显示行的内容。
综上所述,comm命令是一个非常有用的工具,可用于比较并处理已排序文件的差异。通过使用不同的选项和参数,可以根据需要定制comm命令的行为。
2年前 -
comm命令是一个用于比较两个已经排好序的文件每行内容的Linux命令。它可以找出两个文件中共有的部分、不同的部分和只存在于一个文件中的部分。comm 命令的基本语法如下:
“`shell
comm [OPTION]… FILE1 FILE2
“`
其中,FILE1和FILE2是需要比较的两个文件。下面我们将详细介绍comm命令的使用方法和操作流程。
## 1. 比较两个文件的内容
首先,我们需要创建两个文件file1.txt和file2.txt,分别包含将要比较的内容。然后可以使用comm命令比较这两个文件:
“`shell
$ comm file1.txt file2.txt
“`comm命令默认会输出3列,分别是两个文件共有的行、只在第一个文件中的行和只在第二个文件中的行。例如,如果file1.txt的内容为:
“`
apple
banana
orange
“`而file2.txt的内容为:
“`
banana
grape
orange
“`那么comm命令的输出结果将为:
“`
apple
banana
grape
orange
“`其中,以制表符分隔的空白表示没有对应的行。
## 2. 指定输出列
我们可以使用命令选项来指定comm命令的输出列。
– `-1`:只输出在第一个文件中独有的行。
– `-2`:只输出在第二个文件中独有的行。
– `-3`:只输出两个文件共有的行。例如,如果我们只想输出在第一个文件中独有的行,可以使用以下命令:
“`shell
$ comm -1 file1.txt file2.txt
“`输出结果为:
“`
apple
“`## 3. 忽略首部空白字符
默认情况下,comm命令会将首部的空白字符看作是行内容的一部分。如果想要忽略首部的空白字符进行比较,可以使用`-b`选项。
例如,假设file1.txt的内容为:
“`
apple
banana
orange
“`comm命令输出结果将会是:
“`
apple
banana
orange
“`如果使用`-b`选项,comm命令输出结果将会是:
“`
apple
banana
orange
“`## 4. 指定分隔符
comm命令默认以制表符作为输出列的分隔符。如果需要使用其他分隔符,可以使用`-t`选项指定。
例如,创建一个以逗号分隔的文件file3.txt:
“`
apple,banana
orange,pineapple
“`使用comm命令进行比较并指定分隔符:
“`shell
$ comm -t, file1.txt file3.txt
“`输出结果为:
“`
apple
banana
orange,pineapple
“`## 5. 忽略大小写
comm命令默认是区分大小写的。如果想要忽略大小写进行比较,可以使用`-i`选项。
例如,假设file1.txt的内容为:
“`
APPLE
BANANA
ORANGE
“`使用comm命令进行比较并忽略大小写:
“`shell
$ comm -i file1.txt file2.txt
“`输出结果为:
“`
apple
banana
grape
orange
“`## 6. 结合其他命令使用
comm命令支持和其他命令一起使用,例如grep、sort等。下面是一些常见的案例:
– 结合grep命令,找出两个文件共有的行:
“`shell
$ comm file1.txt file2.txt | grep -v ‘^ ‘
“`– 结合sort命令,对两个文件进行排序后比较:
“`shell
$ comm <(sort file1.txt) <(sort file2.txt)```- 使用comm命令和uniq命令一起去重:```shell$ comm -12 <(sort file1.txt) <(sort file2.txt) | uniq```以上是comm命令的基本用法和操作流程。通过合理运用comm命令,我们可以方便地比较两个文件的内容并获取相应的结果。2年前