여러 열로 구분된 파일을 단일 열 파일과 비교하고 "공통" 줄을 제거하는 방법은 무엇입니까?

여러 열로 구분된 파일을 단일 열 파일과 비교하고 "공통" 줄을 제거하는 방법은 무엇입니까?

2개의 파일이 있습니다. 하나는 단 하나의 열만 포함하고 다른 하나는 여러 개의 |분리된 열을 포함합니다. 파일 1과 파일 2를 비교하고 공통 줄을 제거한 다음 새 파일에 복사해야 합니다.

file2"공통" 행은 7번째 열이 의 (단일) 값과 동일한 행입니다 file1.

  • 파일 1:
    12345
    89457
    34890
    
  • 파일 2:
    GTDtech
    rachel|USA|00|34|ty|ES|12345|789900098|tye
    FLPEN|MAL|90|45|tui|FE|34890|883562748|yu
    ahnat|jap|88|91|hb|kl|24424|784284141|fwfhnw
    

답변1

$ awk -F'|' 'NR==FNR {a[$1]=1; next}; ! ($7 in a)' file1 file2
GTDtech
ahnat|jap|88|91|hb|kl|24424|784284141|fwfhnw

이것은 file1을 읽고 배열의 a각 행에 대해 하나의 요소를 생성합니다 . 그런 다음 file2를 읽고 열 7이 있는 모든 줄을 인쇄합니다.아니요배열에서 a.

관련 정보