awkを使用して最後の2つのフィールドを切り替える

awkを使用して最後の2つのフィールドを切り替える

タブ区切りファイルの最後の2つのフィールドを切り替える方法を探しています。フィールド数は行ごとに異なるため、フィールド番号を指定することはできません。

オンラインで見つけることができるほとんどのものはドメイン固有のスクリプトです。例えばawkを使用した2つの熱交換

ありがとうございます!

ベストアンサー1

awk -F"\t" -v OFS="\t" 'NF>1 {t=$(NF-1); $(NF-1)=$NF; $NF=t} {print}' file

フィールドが2つ以上の場合にのみ、および$NF間の標準交換が可能です。$(NF-1)-1フィールドへのアクセスは致命的なエラーです(空白行の場合NF==0)。

また見なさい:GNU awkフィールド

おすすめ記事