他のファイルの対応する行に基づいて、最も簡単な方法で間違った項目を並べ替えるにはどうすればよいですか?

他のファイルの対応する行に基づいて、最も簡単な方法で間違った項目を並べ替えるにはどうすればよいですか?

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

おすすめ記事