이상한 문제: 연결: 파일 2가 정렬 순서가 아닙니다.

이상한 문제: 연결: 파일 2가 정렬 순서가 아닙니다.
sort flash_int_list.txt|join finish_comm - > t1
join: file 2 is not in sorted order

flahs_int_list.txt를 정렬했지만 여전히 파일 2가 정렬된 순서가 아닌 것으로 표시됩니다. 무엇이 잘못되었나요?

flash_int_list.txt는 다음과 같습니다(처음 2줄만 표시되며 약 1000줄이 있습니다).

1     8cvGIKL7C-M   1  1         1         0    0    0    0  -28
9     27ugSKW4-QQ   1  3         3         0    0    0    0  -28

답변1

불행히도 매뉴얼 페이지에는 이것이 sort <no options> | join <no options>작동하지 않는다고 나와 있습니다.

   Important: FILE1 and FILE2 must be sorted on the join fields.  E.g.,
   use ` sort -k 1b,1 ' if `join' has no options, or use ` join -t '' ' if
   `sort' has no options.

따라서 다음을 시도해 볼 수 있습니다.

sort flash_int_list.txt | join -t '' finish_comm - > t1

또는:

sort -k 1b,1 flash_int_list.txt | join finish_comm - > t1

답변2

옵션은 연결할 각 파일의 필드를 -1 FIELD -2 FIELD정의합니다 . join기본 조인 필드가 먼저 공백으로 구분됩니다.

옵션은 정렬에 사용할 키를 -k정의 합니다. sort키가 제공되지 않으면 전체 행이 키로 사용됩니다.

따라서 어떤 파일을 결합하고 두 파일이 해당 파일에 정렬되어 있는지 확인하십시오.

man join man sort자세히보다.

답변3

당신은 종종 합류하는 것을 보게 될 것입니다프로세스 교체

join finish_comm <(sort flash_int_list.txt) > t1

관련 정보