スペースで区切られた特定のフィールドを連結します。

スペースで区切られた特定のフィールドを連結します。

複数のスペースが単語/フィールドを区切っている場合は、スペースで区切られた文字列があり、2番目と3番目の「単語」/フィールドを連結して正しく処理されるようにする必要があります。
以下はうまくいきます。

tr -s " " |cut -d ' ' -f2 -f3 | tr " " "-"  

これを行うよりクリーンな方法があるかどうか疑問に思います。

ベストアンサー1

awkデフォルトでは、スペースはフィールド区切り文字として使用されるため、awk1回の呼び出しで問題を解決できます。

awk '{ printf("%s-%s\n", $2, $3) }'

データが渡される標準入力ですawk

シェルで同じことを行います(デフォルトでは、以前とほぼ同じ方法で入力をスペースに分割しますawk)。

read -r number first second therest
printf '%s-%s\n' "$first" "$second"

データが渡される標準入力ですread

trただandを使用したい場合は、cutすでに最もコンパクトなソリューションを持っていると思います。

おすすめ記事