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