首页 > 其他分享 >comm

comm

时间:2023-07-13 09:04:18浏览次数:27  
标签:aaa bbb comm txt root localhost

comm

按行比较两个已排序的文件。

概要

comm [OPTION]... FILE1 FILE2

主要用途

  • 按行比较两个已排序的文件。
  • FILE1FILE2-时,读取标准输入。
  • 无选项时输出三列,第一列为FILE1独有的行,第二列为FILE2独有的行,第三列为FILE1FILE2共有的行。

选项

-1                        不输出第一列。
-2                        不输出第二列。
-3                        不输出第三列。
--check-order             检查输入行是否正确的排序,即使它们确实是已排序过的。
--nocheck-order           不检查输入行是否正确的排序。
--output-delimiter=STR    使用STR作为输出列之间的分隔符而不是默认的TAB。
--total                   额外地增加第四列输出概要。
-z, --zero-terminated     设置行终止符为NUL(空),而不是换行符。
--help                    显示帮助信息并退出。
--version                 显示版本信息并退出。

返回值

返回0表示成功,返回非0值表示失败。

例子

文本 aaa.txt 内容

[root@localhost text]# cat aaa.txt 
aaa
bbb
ccc
ddd
eee
111
222

文本 bbb.txt 内容

[root@localhost text]# cat bbb.txt 
bbb
ccc
aaa
hhh
ttt
jjj

比较结果

[root@localhost text]# comm --nocheck-order aaa.txt bbb.txt 
aaa
                bbb
                ccc
        aaa
ddd
eee
111
222
        hhh
        ttt
        jjj

输出的第一列只包含在aaa.txt中出现的行,第二列包含在bbb.txt中出现的行,第三列包含在aaa.txt和bbb.txt中相同的行。各列之间以制表符(\t)作为分隔符。

比较排序过的文档

先通过 sort 将文件内容排序:

[root@localhost ~]# sort aaa.txt > aaa1.txt
[root@localhost ~]# sort bbb.txt > bbb1.txt

比较结果:

[root@localhost ~]# comm aaa1.txt bbb1.txt
111
222
		aaa
		bbb
		ccc
ddd
eee
	hhh
	jjj
	ttt

交集

打印两个文件的交集,需要删除第一列和第二列:

[root@localhost text]# comm aaa.txt bbb.txt -1 -2
bbb
ccc

差集

通过删除不需要的列,可以得到aaa.txt和bbb.txt的差集:

aaa.txt的差集

[root@localhost text]# comm aaa.txt bbb.txt -2 -3
aaa
ddd
eee
111
222

bbb.txt的差集

[root@localhost text]# comm aaa.txt bbb.txt -1 -3
aaa
hhh
ttt
jjj

注意

  1. 该命令是GNU coreutils包中的命令,相关的帮助信息请查看man -s 1 comminfo coreutils 'comm invocation'

标签:aaa,bbb,comm,txt,root,localhost
From: https://www.cnblogs.com/linuxcmd/p/comm.html

相关文章

  • command
    command调用并执行指定的命令补充说明command命令调用指定的指令并执行,命令执行时不查询shell函数。command命令只能够执行shell内部的命令。语法command(参数)参数指令:需要调用的指令及参数。实例使用command命令调用执行echoLinux,输入如下命令:commandechoLinux......
  • document.createComment All In One
    document.createCommentAllInOnedocument.createCommentdocument.createComment("auth")<!--auth-->MDNXML/HTMLconstdocu=newDOMParser().parseFromString("<xml></xml>","application/xml");const......
  • lightdb plorasql supports goto command
    ArticledirectorybackgroundScenesCasepresentationnestedblocksLOOPWHILEFORCOMMITROLLBACKIFCASEEXITRETURNGOTOEXCEPTIONNULLinconclusionBackgroundTheGOTOstatementisanunconditionaljumpstatement,whichcanjumptheexecution......
  • git 合并某个分支上某次commit记录到另外一个分支
    需求:需要将A分支的某次提交记录,合并到B分支 解决步骤:1)gitcheckoutA分支找到提交的commitid可以使用gitlog命令或者右键上次提交的记录copyreversionnumber2)切回到B分支使用gitcherry-pick提交记录ID,回车即可。或者直接用idea选择某个commit,右键......
  • Burp Suite Professional / Community 2023.7 (macOS, Linux, Windows) - Web 应用安
    BurpSuiteProfessional/Community2023.7(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:https://sysin.org/blog/burp-suite-pro-2023/,查看最新版。原创作品,转载请保留出处。作者......
  • 使用Redis时的vm.overcommit_memory内存分配控制
    最近在使用Redis的时候遇到了linux系统中的vm.overcommit_memory参数设置,对此不是很了解,于是研究了一下,有了本文。 ===================================== 一个尝试,如何在内存中申请空间:>>>100000*400000*8/1024/1024/1024298.0232238769531 实际代码:importnumpyasnpx=np......
  • bash: accelerate: command not found
    pyAIGCStableDiffusion文生图Lora模型微调实现虚拟上装详情  实验手册实验报告 3.安装Diffusers进入PAI-DSW开发环境。登录PAI控制台。在页面左上方,选择DSW实例所在的地域。在左侧导航栏单击工作空间列表,在工作空间列表页面......
  • git show 显示 commit 提交说明信息
    一、只显示某个commit的内容示例:1.有多次提交记录。2.只显示8dd428这个commit的loggitshow8dd4283.加上--name-only参数,只显示文件名,不显示对比差异信息gitshow--name-only8dd4284.加上--data设置日期显示方式。--date更详细用法-->git--d......
  • OpenCV的CommandLineParser类
    C++带有参数的main函数我们可以使用命令行的方式给argv赋值:1#include<iostream>2#include<cstdlib>34//intmain(intargc,char*argv[])5intmain(intargc,char**argv)6{78intsum=0;9for(inti=1;i<argc;++i)10{......
  • WINUI 引入 CommunityToolkit.WinUI.UI进行数据验证
     先在xaml命名空间中引入  xmlns:ui="using:CommunityToolkit.WinUI.UI"textbox中进行IP验证如下:<TextBoxx:Name="textBox"Width="200"Height="30"Background="AliceBlue"ui:TextBoxExten......