AWKスクリプトをBASHコマンドリストに変換するには?

AWKスクリプトをBASHコマンドリストに変換するには?

次のAWKスクリプトファイルがあり、次から呼び出すと正常に動作します。

  awk -f conv-units.awk 53567782

  51.09 MB

conv-units.awk

#!/usr/bin/awk -f

BEGIN{  x = ARGV[1]

        split("B KB MB GB TB PB",type)

    for(i=5;y < 1;i--)
        y = x / (2**(10*i))

    printf("%.2f %s\n",y,type[i+2])
}

しかし、次のように実行すると失敗します。

awk 'BEGIN{ x = ARGV[1]   split("B KB MB GB TB PB",type)  for(i=5; y < 1; i--)   y=x/(2**(10*i))  {printf("%.2f %s\n",y,type[i+2])}}' 53567782

答え1

echo 53567782 | awk '{x=$1; split("B KB MB GB TB PB",type); for(i=5;y < 1;i--) y = x / (2**(10*i)); printf("%.2f %s\n",y,type[i+2])}'
51.09 MB

交換しましたのでx=ARGV[1]参考にしてくださいx=$1

関連情報