첫 번째 열이 소문자 문자열인 첫 번째 열을 기준으로 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
파일에 헤더가 없는 경우에 사용됩니다.