一部の文字列が非常に長い(最大45文字)問題が発生していますか? [コピー]

一部の文字列が非常に長い(最大45文字)問題が発生していますか? [コピー]

filename次のファイルの最後の列と最初の列を抽出したいと思います。これを。

0.400 1.0 1.0 3.0 0.0 1.00 2.0 5.0 1.0 1.00 0.0 0.0 gs100_bs050_rcrs100_rarcinf_core_0400mpc3_df
B 0.400 1.0 1.0 3.0 0.0 0.25 2.0 5.0 1.0 0.25 0.0 1.0 gs100_bs050_rcrs025_rarc100_core_0400mpc3_df
C 0.03021516 4.0 1.0 4.0 0.0 1.75 2.0 5.0 1.0 1.75 -0.5 -0.5 data_c_rh4_rs175_gs10_ra0_b05n_10k

awk '{print $NF, " ", $1}' filename得ることを期待しながら努力しました。

gs100_bs050_rcrs100_rarcinf_core_0400mpc3_df A
gs100_bs050_rcrs025_rarc100_core_0400mpc3_dfB
data_c_rh4_rs175_gs10_ra0_b05n_10kC

しかし、私は得た。

A0_bs050_rcrs100_rarcinf_core_0400mpc3_df
B0_bs050_rcrs025_rarc100_core_0400mpc3_df
C_c_rh4_rs175_gs10_ra0_b05n_10k

Mac(gawk v 5.0.0)とLinux / Ubuntuでも同じで、各行の先頭(mawk 1.3.3)には3つの余分なスペースがあります。私も試してみたawk '{printf("%s %s\n", $NF, $1)}' filenameが得た

A100_bs050_rcrs100_rarcinf_core_0400mpc3_df
 B100_bs050_rcrs025_rarc100_core_0400mpc3_df
 Cta_c_rh4_rs175_gs10_ra0_b05n_10k

Macで。最後の列の最長文字列は45文字です。だから私は試しましたが、
awk '{printf("%-50s %s\n", $NF, $1)}' filenameこれが返されました。

     As050_rcrs100_rarcinf_core_0400mpc3_df
      Bs050_rcrs025_rarc100_core_0400mpc3_df
                Cgs10_ra0_b05n_10k

私の例は、awkのフィールドあたり1024文字と100のフィールド制限に準拠しています。これがバグでしょうかawk

ベストアンサー1

おすすめ記事