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スクリプトレットで使用できますprintfprint

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

お役に立てば幸いです。

関連情報