![사용자 정의 열 구분 기호를 사용하는 다른 파일에 STDIN을 사용하시겠습니까?](https://linux55.com/image/174466/%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%A0%95%EC%9D%98%20%EC%97%B4%20%EA%B5%AC%EB%B6%84%20%EA%B8%B0%ED%98%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%8B%A4%EB%A5%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%20STDIN%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
서로 다른 열과 서로 다른 구분 기호가 있는 두 개의 파일이 있습니다. fileA
파일의 $1이 파일의 $4와 일치하는 줄을 인쇄하면 됩니다. fileB
이는 두 파일이 모두 동일한 열 구분 기호를 사용하는 경우에만 작동합니다.
cat ./fileA | awk -F' ' 'FNR==NR {lines[$4]; next} $1 in lines {print $0}' fileB -
편집하다 파일 A:
samir x
said y
sabri z
samir y
파일 B:
43,54,65,said
-F
파일에 대해 다른 구분 기호를 표시하려면 어떻게 해야 합니까 fileB
? fileA
기본 공백 구분 기호를 사용합니다 .
나는 시도했다:
cat ./fileA | awk -F' ' 'FNR==NR {lines[$4]; next} $1 in lines {print $0}' FS=',' fileB -
하지만 작동하지 않습니다. 어떤 아이디어가 있습니까?
답변1
노력하다
awk -F, 'FNR==NR { lines[$4] ; next ; } $1 in lines { print }' f2 FS=' ' f1
이것은 만든다
said y