두 개의 파일이 있습니다.
한 파일에는 다른 파일의 해당 줄에 "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