Join 명령의 자동 형식은 어떻게 작동합니까?

Join 명령의 자동 형식은 어떻게 작동합니까?

예는 다음과 같습니다.

$ cat file1
hello
there
$ cat file2
some,very,long,line,hello,csv
some,very,long,line,nope,csv
$ join -t, -1 1 -2 5 file1 file2
hello,some,very,long,line,csv

이는 문서화된 방식으로 작동합니다. 연결된 필드가 왼쪽으로 당겨지고 나머지 필드가 인쇄됩니다.

하지만 내가 원하는 출력은 CSV(file2) 열 순서를 유지하는 것입니다. CSV 필드 번호를 명시적으로 나열하는 다음 명령을 사용하여 CSV 전체를 인쇄할 수 있습니다.

join -t, -1 1 -2 5 -o $(head -n1 file2 | awk -F, '{print NF}' | xargs seq | sed 's/^/2./' | paste -d, -s) file1 file2

다음과 같이 인쇄됩니다.

some,very,long,line,hello,csv

아이디어join이에 대한 형식 이 있습니다 auto. 맨 페이지 join의 귀중한 내용은 다음과 같습니다 -o FORMAT.

FORMAT이 "auto" 키워드인 경우 각 파일의 첫 번째 줄은 줄당 출력되는 필드 수를 결정합니다.

그러나 이것이 무엇을 의미하는지, 형식을 어떻게 사용해야 하는지 전혀 모르겠습니다 auto.

나는 이것을 시도했지만 이전과 다른 결과를 얻지 못했습니다.

$ join -t, -1 1 -2 5 -o auto file1 file2
hello,some,very,long,line,csv

순진한 설명은 필수 필드를 각 파일의 첫 번째 줄에 나열해야 한다는 것이지만 그것도 잘못된 것입니다.

그래서 내 질문은 이것이 무엇 auto이며 어떻게 사용해야 하는가입니다. 입력 CSV의 열 순서를 유지하기 위해 이를 사용할 수 있습니까?

관련 정보