linux没有comm命令

fiy 其他 14

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Linux确实没有comm命令。comm命令是一种用于比较两个已排序的文件并输出它们的相同行、不同行和仅出现在一个文件中的行的工具。虽然Linux没有原生的comm命令,但我们可以使用其他方法来实现类似的功能。

    一种方法是使用grep命令和重定向操作符。假设我们有两个已排序的文件file1和file2,我们可以使用以下命令来实现类似于comm命令的功能:

    “`
    grep -xF -f file1 file2 > common_lines.txt
    grep -vxF -f file1 file2 > unique_lines1.txt
    grep -vxF -f file2 file1 > unique_lines2.txt
    “`

    上述命令会将file1和file2中的相同行输出到common_lines.txt文件中,将只出现在file1中的行输出到unique_lines1.txt文件中,将只出现在file2中的行输出到unique_lines2.txt文件中。其中,-x参数表示完全匹配,-F参数表示按照字符串而不是正则表达式进行匹配,-f参数指定匹配模式的文件。

    另一种方法是使用diff命令。diff命令用于比较两个文件并输出它们之间的差异。我们可以使用以下命令来实现类似于comm命令的功能:

    “`
    diff file1 file2 | grep “^>” | cut -c 3- > unique_lines1.txt
    diff file1 file2 | grep “^<" | cut -c 3- > unique_lines2.txt
    diff file1 file2 | grep “^<" | cut -c 3- | while read line; do grep -xF "$line" file1; done > common_lines.txt
    “`

    上述命令将只出现在file1中的行输出到unique_lines1.txt文件中,将只出现在file2中的行输出到unique_lines2.txt文件中,将file1和file2中的相同行输出到common_lines.txt文件中。其中,diff命令用于比较两个文件,grep命令用于过滤输出,cut命令用于删除输出中的前两个字符,while循环用于逐行比较文件1和文件2中的差异行,并将相同行输出到common_lines.txt文件中。

    总而言之,虽然Linux没有原生的comm命令,但我们可以使用其他方法来实现类似的功能,如使用grep命令和重定向操作符,或使用diff命令和grep命令。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    对不起,这是不正确的。Linux系统中存在一个名为”comm”的命令。该命令用于比较两个已排序的文件并找到共同的行。以下是关于”comm”命令的五个重要点:

    1. 比较文件:使用”comm”命令可以比较两个已排序的文件,并输出共同的行、独有的行以及在每个文件中独有的行。

    2. 命令语法:comm命令的基本语法如下:`comm [OPTION]… FILE1 FILE2`。其中,”FILE1″和”FILE2″是要进行比较的两个文件。

    3. 选项参数:”comm”命令有一些可选的选项参数,用于控制输出的格式和内容。例如,”-1″参数可以禁用输出第一个文件中独有的行,”-2″参数可以禁用输出第二个文件中独有的行,”-3″参数可以禁用输出两个文件中共同的行。

    4. 默认比较模式:默认情况下,”comm”命令会根据文件中的每一行进行比较。如果两个文件具有相同的行,则输出到标准输出。如果只存在于一个文件中,则输出到相应的文件的标准输出。

    5. 排序要求:为了使用”comm”命令进行比较,两个文件都必须已经按照相同的排序规则进行排序。如果文件未排序,则结果可能会出现错误或不一致。

    综上所述,”comm”命令是Linux系统中的一个实用工具,用于比较已排序文件之间的差异和相似性。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    非常抱歉,我之前的回答有误。实际上,Linux是有comm命令的。在这里,我将提供有关comm命令的详细解释和操作流程。

    comm命令用于比较两个已排序的文件,并输出它们的共有行、唯一行以及不同行。该命令默认从标准输入中读取文件,并将结果输出到标准输出中。以下是comm命令的基本用法:

    “`
    comm [OPTION]… FILE1 FILE2
    “`

    其中,FILE1和FILE2是要比较的两个文件的名称。以下是comm命令的常用选项:

    – `-1`:禁止输出属于FILE1的独有行;
    – `-2`:禁止输出属于FILE2的独有行;
    – `-3`:禁止输出属于同时在FILE1和FILE2中出现的行;
    – `-i`:忽略大小写;
    – `-u`:仅输出不重复的行;
    – `-z`:允许以空格分隔的文件名;
    – `-t`:将文件名输出为标签;
    – `–check-order`:检查输入文件是否按照排序顺序。

    下面是使用comm命令的具体操作流程:

    1. 打开终端程序。
    2. 输入以下命令来比较两个文件的内容:

    “`
    comm file1.txt file2.txt
    “`

    请将`file1.txt`和`file2.txt`替换为您想要比较的实际文件名称。
    3. 按下回车键执行命令。
    4. comm命令将输出三列结果。第一列(以`<`标记)表示仅存在于`file1.txt`的行,第二列(以`>`标记)表示仅存在于`file2.txt`的行,第三列(以空格标记)表示两个文件共有的行。
    5. 如果您想要只输出不重复的行,可以使用`-u`选项,命令如下:

    “`
    comm -u file1.txt file2.txt
    “`

    6. 您还可以使用其他选项来进行更高级的比较操作。

    希望这个解释和操作流程能够对您有所帮助。再次对之前的回答错误表示道歉。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部