首页 > 编程知识 正文

c语言求并集交集差集,python求交集和并集

时间:2023-05-05 20:31:30 阅读:42529 作者:4881

使用comm命令

假设两个文件FILE1和FILE2由集合a和b表示,则FILE1的内容如下:

a

B

C

e

d

a

FILE2的内容如下。

C

d

a

C

基本上有两种方法。 一个是comm命令,另一个是grep命令。 分别介绍如下

comm命令,comparesortedfilesfile1and file2line by line.withnooptions, produce three-column output.columnonecontainslinesunique columntwocontainslinesuniquetofile 2,andcolumnthreecontainslinesconescome 默认输出为3列

直接执行结果如下。

$ comm a.txt b.txt

a

B

C

d

a

C

e

d

a

仅限排序:

$ comm

a

a

B

C

C

d

e

而唯一:

$ comm

a

B

C

d

e

想要交叉的情况下,可以如下进行。

$ comm -12

a

C

d

grep命令:

grep命令一般搜索文本内容,要查找交叉点,请执行以下操作:

p$ grep -F -f a.txt b.txt

C

d

a

C

grep不要求排序,但因为是集合操作,所以唯一需要(请参阅。 所以:

$ grep -F -f a.txt b.txt | sort | uniq

a

C

d

差集:

$ grep-f-v-fa.txtb.txt|sort|uniq

$ grep-f-v-FB.txta.txt|sort|uniq

B

e

第一行的结果是B-A,所以为空; 第二行为A-B。 注意顺序很重要!

cat sort uniq

1 .检索两个文件的并集(只保留一个重复行) ) ) ) )。

cat file1 file2 | sort | uniq

2 .检索两个文件的交叉点(仅保留同时存在于两个文件中的文件) ) ) ) ) ) ) ) ) )。

cat file1file2- d

3 .删除交叉点,保留其他行

cat file1file2uniq-u

如果需要计数,但有一个很好的参数uniq -c,可以将相同行数的计数放在行的开头

排序顺序

根据从输入行中提取的一个或多个关键字进行比较。 排序键定义用于排序的最小字符串。 默认情况下,按整个行为的关键字按ASCII字符排序。

更改默认设置的选项主要有:

- m如果指定的文件已排序,则合并文件。

- c检查指定文件是否已排序,如果未排序,则打印错误消息,并以状态值1退出。

- u排序后只留下一行被认为相同。

- o输出文件将排序输出写入输出文件,而不是标准输出。 如果输出文件是输入文件之一,则sort会在排序和写入输出结果之前将该文件的内容写入临时文件。

更改默认排序规则的选项主要有:

- d按词典排序,并进行比较,以便只有字符、数字、空格和制表符有意义。

- f将小写字母与大写字母同等对待。

- I忽略非打印字符。

作为- M月的比较:“JAN”

- r按相反顺序输出排序结果。

-k,-key=POS1[,POS2] posl - pos2指定一个或多个字段作为排序关键字。 字段的位置以posl开始,一直到pos2。 包括posl,不包括pos2。 如果未指定pos2,则关键字从posl到行尾。 字段和字符的位置从0开始。

- b在每行中搜索排序键时,忽略开头的空白(空格和制表符)。

- t separator将字符separator指定为字段分隔符。

uniq命令

处理文件后,输出文件可能会显示重复的行。 例如,如果使用cat命令合并两个文件,然后使用sort命令进行排序,则可能会发生重复行。 在这种情况下,可以使用uniq命令从输出文件中删除这些重复行,只保留每个记录的唯一示例。

语法:

uniq [选项]文件

说明:此命令读取输入文件并比较相邻的行。 通常,会删除第二个和后续的重复行,并根据所用字符集的排序顺序进行行比较。 使用此命令加工的结果将写入输出文件。 输入文件和输出文件必须不同。 如果输入文件显示为“-”,则从标准输入读取。

此命令的每个选项的含义如下:

- c表示每行开头加上该行在文件中出现的次数的输出。 可以代替- u和- d选项。

- d仅显示重复行。

- u仅显示文件中不重复的每行。

- n前n个字段将与每个字段前面的空白一起被忽略。 字段是字符串,而不是空格,由制表符和空格分隔。 字段从0开始编号。

前n个字符将被忽略,前一个字符将被跳过(字符从0开始编号)。

- f n与- n相同,其中n是字段数。

- s n与n相同,其中n是字符数。

时间: 07-27

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。