![두 번째 열을 기준으로 정렬하고 처음 두 줄을 생략하는 명령](https://linux55.com/image/203568/%EB%91%90%20%EB%B2%88%EC%A7%B8%20%EC%97%B4%EC%9D%84%20%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C%20%EC%A0%95%EB%A0%AC%ED%95%98%EA%B3%A0%20%EC%B2%98%EC%9D%8C%20%EB%91%90%20%EC%A4%84%EC%9D%84%20%EC%83%9D%EB%9E%B5%ED%95%98%EB%8A%94%20%EB%AA%85%EB%A0%B9.png)
filename.csv
콘텐츠가 포함된 CSV 파일이 있습니다.
,"Range 1 (%)","Range 2 (%)"
"Color","Number Color 1","Number Color 2"
"Red","99.0","5.2"
"Orange","12.9","0.0"
"Yellow","33.9","1.2"
"Green","13.9","76.2"
"Blue","87.6","97.2"
"Purple","86.8","55.5"
두 번째 열의 값을 기준으로 파일을 숫자순으로 정렬하려고 합니다. 하지만 파일의 처음 두 줄은 헤더이므로 생략하고 싶습니다. 내 명령은 다음과 같지만 처음 두 행이 없고 두 번째 열을 기준으로 정렬하지 않고 원본 파일을 출력합니다.
awk -F ',' '(NR>2)’ filename.csv | sort -t',' -k2 -n
도움을 주셔서 감사합니다 :) 감사합니다!
답변1
변형:
head -n 2 file.csv && tail -n +3 file.csv | sort -k 2
헤더 행과 데이터 행을 별도로 처리하면 됩니다.
결과를 다른 것으로 전달하려면 대괄호를 사용하면 됩니다.
(head -n 2 file.csv && tail -n +3 file.csv | sort -k 2) | less