我想提取以下文件的最后一列和第一列,我将其称为filename
.
A 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_df B data_c_rh4_rs175_gs10_ra0_b05n_10k C
但我却得到了
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 上每行开头有 3 个额外空格 ( mawk 1.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
?