Bash

如何根據其他文件中的對應行,以最簡單的方式來整理出錯誤的條目?

  • March 11, 2022

我有兩個文件:

在一個中,我有一個字元串列表,如果另一個文件中的相應行包含字元串“NOPE”,則需要將其刪除。如果它包含“YES”,它會留在那裡。請注意,刪除一行可能會破壞訂單。格式是這樣的:

1.txt:

Jimmy
John
Johnson

2.txt:

YES
NOPE
YES

正確的輸出:

Jimmy
Johnson

對數千個條目執行此操作的最簡單方法是什麼?

你可以這樣

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

引用自:https://unix.stackexchange.com/questions/694069