다음과 같은 파일 (user.csv)이 있습니다.
ip,hostname,user,group,encryption,aduser,adattr
사용자별로 모든 열 정렬을 인쇄하려는 경우
시도했지만 awk -F ":" '{print|"$3 sort -n"}' user.csv
작동하지 않습니다.
다음과 같은 파일 (user.csv)이 있습니다.
ip,hostname,user,group,encryption,aduser,adattr
사용자별로 모든 열 정렬을 인쇄하려는 경우
시도했지만 awk -F ":" '{print|"$3 sort -n"}' user.csv
작동하지 않습니다.
답변:
그냥 sort
.
sort -t, -nk3 user.csv
어디
-t,
-구분 기호를 ,
.
-n
-숫자 정렬을 제공합니다. 시도에 추가 했으므로 추가되었습니다. 사용자 필드가 텍스트 전용 인 경우 필요하지 않습니다.
-k3
-필드 (키)를 정의합니다. user는 세 번째 필드입니다.
sort -t, -nk3 filename.csv | sort -t, -nk6
.-먼저 열 3을 기준으로 정렬 한 다음 열 6을 기준으로 정렬하므로 열 6이 모든 방식으로 올바르게 정렬되고 열 6이 동일한 모든 행에 대해 열 3으로 정렬됩니다. .
sort -t ',' -k3,3n -k6,6n
가 더 좋을 것입니다. -k3
3 열과 나머지 줄을 사용합니다.
사용자 ID에 공백이 없다고 가정하고 sed를 사용하여 중복 사용자 ID를 제거하십시오.
awk -F, '{ print $3, $0 }' user.csv | sort | sed 's/^.* //'
sort
특정 열을 기준으로 정렬하는 방법을 이미 알고 있지만 Schwartzian 변환 이라고하는이 기술 은 정렬하려는 필드가 잘 정의 된 열이 아닌 경우에 유용합니다.
구분 기호를 선택할 수 있습니다.이 경우 콜론을 선택하고 알파벳 순서로 정렬하여 열 번호 1을 인쇄했습니다.
awk -F\: '{print $1|"sort -u"}' /etc/passwd
이 시도 -
awk '{print $0|"sort -t',' -nk3 "}' user.csv
또는
sort -t',' -nk3 user.csv
awk -F "," '{print $0}' user.csv | sort -nk3 -t ','
이것은 작동합니다
sort -t, -k3 file