cide에서 열을 정렬하는 방법은 무엇입니까? [폐쇄]

cide에서 열을 정렬하는 방법은 무엇입니까? [폐쇄]
awk '{ print $1 ," ", $2 ," ", $3," " }' irsc_stn_namesort >lististgah.txt
ABH1   30.6000   50.2532  
AFJ   35.8553   51.7124  
AFRZ   33.4252   59.0150  
AKL   36.5945   58.7540  
ALA   36.0829   52.8099  
AMD1   35.7488   50.9608  
AMIS   31.6653   49.2866  
ANAR   33.1897   53.7288  
ANJ   35.4679   53.9147  
AZR   37.6775   45.9836  
BAF   31.5902   55.5673

답변1

대신 AWK 스크립틀릿에서 사용할 수 있습니다 printf.print

awk '{ printf "%-5s%s%8s\" $1, $2, $3 }' ...

다음 입력을 기반으로 합니다.

ABH1 30.6000 50.2532
AFJ 35.8553 51.7124
AFRZ 33.4252 59.0150
AKL 36.5945 58.7540
ALA 36.0829 52.8099
AMD1 35.7488 50.9608
AMIS 31.6653 49.2866
ANAR 33.1897 53.7288
ANJ 35.4679 53.9147
AZR 37.6775 45.9836
BAF 31.5902 55.5673

...생산물:

ABH1 30.6000 50.2532
AFJ  35.8553 51.7124
AFRZ 33.4252 59.0150
AKL  36.5945 58.7540
ALA  36.0829 52.8099
AMD1 35.7488 50.9608
AMIS 31.6653 49.2866
ANAR 33.1897 53.7288
ANJ  35.4679 53.9147
AZR  37.6775 45.9836
BAF  31.5902 55.5673

입력 데이터의 첫 번째 열은 4자를 넘지 않으며, #2와 #3 열은 다음과 같다고 가정합니다.언제나길이는 7자입니다.

그렇지 않은 경우 명령을 다음 printf "%-As%-Bs%-Cs", $1, $2, $3과 같이 수정할 수 있습니다.

  • A는 열 #1 + 1의 최대 길이입니다.
  • B는 열 #2 + 1의 최대 길이입니다.
  • C는 열 3의 최대 길이입니다.

고쳐 쓰다:

또는 AWK를 사용하는 대신 간단히 column다음 명령을 사용할 수 있습니다.

echo 'AFJ 35.8553 51.7124
AFRZ 33.4252 59.0150
AKL 36.5945 58.7540
ALA 36.0829 52.8099
AMD1 35.7488 50.9608
AMIS 31.6653 49.2866' | column -t

... 생산하다

AFJ   35.8553  51.7124
AFRZ  33.4252  59.0150
AKL   36.5945  58.7540
ALA   36.0829  52.8099
AMD1  35.7488  50.9608
AMIS  31.6653  49.2866

도움이 되길 바랍니다.

관련 정보