다른 파일과 일치하도록 파일의 ID 목록을 일치시키려면 "grep"을 사용하십시오.

다른 파일과 일치하도록 파일의 ID 목록을 일치시키려면 "grep"을 사용하십시오.

나는 다음과 같이 포럼에서 제안된 다양한 형식을 사용해 왔습니다.

grep -f file1.txt file2.txt > ouput.txt

file1.txtID 목록이 포함된 열입니다. 예:

15002345234 
15001234214

file2.txt탭으로 구분된 열을 포함하며, 하나는 ID를 포함하고 다른 하나는 기타 정보를 포함합니다.

1500349850 1 3 father

나는 다른 게시물에서 제안한 명령 awk뿐만 아니라 쉘 루프도 시도했습니다 . sed하지만 본질적으로 하나의 ID에 대해서만 결과를 얻습니다.

150982309750 1 2 2  4

또한 항상 동일하며 출력에는 다음과 같은 많은 결과가 있어야 합니다.

150982309750 1 2 2  4
150563524856 1 3 2  2
150864364612 2 1 2  2

내가 뭘 잘못하고 있는지 어떤 아이디어가 있습니까?

답변1

저 할 수 있어요

  • -w전체 단어만 일치하는 옵션 추가
  • -F고정 문자열(정규식이 아닌) 일치를 위한 옵션이 추가되었습니다 .
  • \r\nfile1이 줄 끝을 사용하지 않는지 확인하십시오 . 후행으로 \r인해 일치가 실패하게 됩니다. 이것을 확인하세요head file1.txt | od -c
grep -wFf <(sed 's/\r$//' file1.txt) file2.txt

관련 정보