リスト間の重複語の削除 [重複]

リスト間の重複語の削除 [重複]

リスト間で重複した単語を削除する例:

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

おすすめ記事