[awk] 열 3으로 awk 정렬을 사용하는 방법

다음과 같은 파일 (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는 세 번째 필드입니다.


답변

  1. awk를 사용하여 사용자 ID를 앞에 넣으십시오.
  2. 종류
  3. 사용자 ID에 공백이 없다고 가정하고 sed를 사용하여 중복 사용자 ID를 제거하십시오.

    awk -F, '{ print $3, $0 }' user.csv | sort | sed 's/^.* //'
    


답변

구분 기호를 선택할 수 있습니다.이 경우 콜론을 선택하고 알파벳 순서로 정렬하여 열 번호 1을 인쇄했습니다.

awk -F\: '{print $1|"sort -u"}' /etc/passwd


답변

awk -F, '{ print $3, $0 }' user.csv | sort -nk2

역순

awk -F, '{ print $3, $0 }' user.csv | sort -nrk2


답변

이 시도 –

awk '{print $0|"sort -t',' -nk3 "}' user.csv

또는

sort -t',' -nk3 user.csv


답변

awk -F "," '{print $0}' user.csv | sort -nk3 -t ','

이것은 작동합니다


답변

첫 번째 줄 (헤더)을 정렬에서 제외하기 위해 두 개의 버퍼로 분할했습니다.

df | awk 'BEGIN{header=""; $body=""} { if(NR==1){header=$0}else{body=body"\n"$0}} END{print header; print body|"sort -nk3"}'