
2つのファイルがあります。
あるファイルには、別のファイルの対応する行に「NOPE」という文字列が含まれている場合に削除する必要がある文字列のリストがあります。 「YES」が含まれている場合はそのまま残ります。行を削除すると、順序が壊れる可能性があります。形式は次のとおりです。
1.txt:
Jimmy
John
Johnson
2.txt:
YES
NOPE
YES
正しい出力:
Jimmy
Johnson
何千ものアイテムに対してこれを行う最も簡単な方法は何ですか?
答え1
あなたはこれを行うことができます
paste 2.txt 1.txt | awk '$1 == "YES" {print $2}'
(単語文字列の場合) または
awk 'NR==FNR && $0=="YES" {i[FNR]; next} FNR in i' 2.txt 1.txt