헤더를 무시하고 첫 번째 열을 기준으로 CSV 파일 정렬

헤더를 무시하고 첫 번째 열을 기준으로 CSV 파일 정렬

첫 번째 열이 소문자 문자열인 첫 번째 열을 기준으로 CSV 파일을 정렬하고 머리글 행을 무시하는 방법은 무엇입니까?

답변1

sort헤더를 제외하는 옵션은 없습니다. 다음을 사용하여 헤더를 제거할 수 있습니다.

tail -n+2 yourfile | sort 

이 tail 구문은 yourfile두 번째 줄부터 파일 끝까지 이어집니다.

물론 결과에는 sort헤더가 포함되지 않습니다.

head -n1 yourfile파일의 첫 번째 줄(헤더)만 인쇄하는 명령을 사용하여 헤더를 분리할 수 있습니다 .

이를 결합하려면 다음을 실행할 수 있습니다.

head -n1 yourfile && tail -n+2 yourfile | sort

답변2

헤더를 유지하고 싶다고 가정합니다. 파일 내용을 그룹화된 구조로 리디렉션합니다.

{
    # grab the header and print it untouched
    IFS= read -r header
    echo "$header"
    # now process the rest of the input
    sort
} < file.csv

답변3

사용 csvkit:

$ csvsort -c 1 file.csv

그렇지 않으면

$ csvsort file.csv

차이점은 첫 번째 명령은 첫 번째 열만 사용하는 반면 두 번째 명령은 모든 열을 사용한다는 것입니다(이와 같습니다 sort).

도구 csvkit에서는 입력 CSV 파일의 첫 번째 행에 헤더 행이 있다고 가정합니다. -H파일에 헤더가 없는 경우에 사용됩니다.

관련 정보