方法一(直接用文件名):取兩個文本文件的並集、交集、差集
並:ide
sort -m <(sort file1 | uniq) <(sort file2 | uniq) | uniqspa
交:orm
sort -m <(sort file1 | uniq) <(sort file2 | uniq) | uniq -d排序
差 file1 - file2:ci
sort -m <(sort file1 | uniq) <(sort file2 | uniq) <(sort file2 | uniq) | uniq -uit
方法二(用變量參數):取兩個文本文件的並集、交集、差集
class
file1=XXXX變量
file2=YYYYfile
# 並:搜索
sort -m <(sort $file1 | uniq) <(sort $file2 | uniq) | uniq
# 交:
sort -m <(sort $file1 | uniq) <(sort $file2 | uniq) | uniq -d
# 差 file1 - file2:
sort -m <(sort $file1 | uniq) <(sort $file2 | uniq) <(sort $file2 | uniq) | uniq -u
方法三:
file1=XXXX
file2=YYYY
# 並:
cat $file1 $file2 | sort | uniq
# 交:
cat $file1 $file2 | sort | uniq -d
備註:
uniq -d 會輸出重複行
uniq -u 只顯示惟一的行
grep命令
grep命令是經常使用來搜索文本內容的,根據輸入的pattern,輸出命中的內容。能夠利用它的文件輸入pattern特性,來求兩個文件的交集。
$ c d e
那差集能夠利用-v這個參數,例如:
$ grep -F -v -f a.file b.file f g $ grep -F -v -f b.file a.file a b
其中第一個命令求B-A,第二個命令求A-B
注意:
1)grep求交集不要求輸入文件是排序的,但最好是惟一的
2)差集時注意輸入文件的順序