다음과 같은 큰 텍스트 파일(파일 A)이 있습니다.
ID1 ID2 0.2
ID3 ID6 0.4
ID4 ID2 0.6
ID5 ID8 0.8
ID7 ID14 0.4
ID3 ID9 0.6
ID8 ID10 0.8
두 개의 다른 텍스트 파일(B와 C)이 있는데, 파일 B는 다음과 같습니다.
ID1
ID2
ID3
ID4
ID5
ID6
ID7
파일 C는 다음과 같습니다.
ID8
ID9
ID10
ID11
ID12
ID13
ID14
처음 두 열의 관련 내용이 파일 B와 파일 C에 모두 속하는 파일 A의 행만 유지하고 싶습니다. 예를 들어, 파일 A에서 다음 줄만 원합니다.
ID10 ID3 0.8
ID7 ID14 0.4
ID3 ID9 0.6
ID 10과 ID3은 파일 B와 C에 모두 속하기 때문입니다. 그러한 출력을 얻는 방법을 알려주시겠습니까?
매우 감사합니다
답변1
파일에 나타나는 문자열의 파일 grep
과 파일에 나타나는 문자열의 결과입니다.A
B
grep
C
$ ( grep -wF -f fileB | grep -wF -f fileC ) <fileA
ID5 ID8 0.8
ID7 ID14 0.4
ID3 ID9 0.6
사용된 옵션 grep
은
-w
전체 단어만 일치시킵니다(일반적이지만 비표준 옵션임).ID10
grep에서 일치 항목이 없을 때 이 옵션을 사용합니다ID1
.-F
패턴을 정규식이 아닌 문자열로 해석합니다.-f
별도의 파일에서 일치시킬 패턴을 읽습니다.