以下の例があります。
入力.txt
USERS position ref rslt
usr1 X B
usr2 2980 C
usr3 3323 P
usr4 A
usr5 5251 U
usr6 9990 A
usr7 10345 T
「rslt」列と対応する「USERS」を印刷する必要があります。出力ファイルは次のようにする必要があります。
出力.txt
USERS rslt
usr1 B
usr2 C
usr4 A
usr6 A
awk
成功せずにコマンドを試してみました。表の黒い位置はすべて空白で埋められています。 (各行の空白数は異なります。)
ベストアンサー1
この場合、考えられる解決策は、最初にフィールド幅を提供することです。
awk 'BEGIN {FIELDWIDTHS = "16 11 6 7"}
$4 ~/[^ ]/ {print $1 $4}'
フィールドの幅は手動で計算できますが、複雑なヘッダーの場合は最初に計算するのが好きです。
head -1 f | grep -Po '.*? (?=\S|$)' | awk '{print length}'
更新:...またはヘッダーの最初と最後のスペースを処理するには:
head -1 f | grep -Po '(^ *|\S).*?( (?=\S)|$)' | awk '{print length}'