comm命令

comm命令可以读取两个排好序的文件A和B,然后输出三列数据: 只存在于A文件的内容; 只存在于B文件的内容;同时存在于A和B文件的内容。

语法:

comm [-123i] file1 file2

-1    不输出第一列(lines only in file1)
-2    不输出第二列(lines only in file2)
-3    不输出第三列(lines in both files)

实例

chenpeng@baxi:/desktop|⇒  cat a
a
ab

chenpeng@baxi:/desktop|⇒  cat b
ab
b
# a和b两个文件都已经排过序了
chenpeng@baxi:/desktop|⇒  comm a b
a
        ab
    b


#如果未排序,可以使用以下命令
chenpeng@baxi:/desktop|⇒  comm <(sort a) <(sort b)
a
        ab
    b

#隐藏了第一列
chenpeng@baxi:/desktop|⇒  comm -1 a b
    ab
b


#求交集(同时存在于a和b中)
chenpeng@baxi:/desktop|⇒  comm -12 a b
ab

#求差集(存在于a但不存在于b中)
chenpeng@baxi:/desktop|⇒  comm -23 a b
a

results matching ""

    No results matching ""