リスト間で重複した単語を削除する例:
2つのリストがあります。最初のリストには以下が含まれます。
a
b
c
d
2番目のリストには以下が含まれます。
a
b
c
d
e
f
最初のリストと2番目のリストを比較し、両方のリストに含まれている一致を削除したいと思います。結果は次のとおりです。
e
f
bashを使ってこれを行う解決策が見つかりませんでしたが、Pythonで解決策を見つけました。https://stackoverflow.com/questions/7961363/removing-duplicates-in-lists/7961390#7961390
答え1
diff
オプションを使用して使用できます--GTYPE-group-format=GFMT
。からman diff
:
--GTYPE-group-format=GFMT
format GTYPE input groups with GFMT
LTYPE is 'old', 'new', or 'unchanged'.
GTYPE is LTYPE or 'changed'.
GFMT (only) may contain:
%< lines from FILE1
%> lines from FILE2
%= lines common to FILE1 and FILE2
あなたの場合は、次のものを使用できますdiff --new-group-format='%>' --unchanged-group-format='' list1 list2
$ cat list1
a
b
c
d
$ cat list2
a
b
c
d
e
f
$ diff --new-group-format='%>' --unchanged-group-format='' list1 list2
e
f
説明する
--new-group-format='%>'
FILE1にない新しい項目はFILE2()から出力されます%>
。- これにより、同じ行が印刷されるのを
--unchanged-group-format=''
防ぎます。diff