複数のスペースが単語/フィールドを区切っている場合は、スペースで区切られた文字列があり、2番目と3番目の「単語」/フィールドを連結して正しく処理されるようにする必要があります。
以下はうまくいきます。
tr -s " " |cut -d ' ' -f2 -f3 | tr " " "-"
これを行うよりクリーンな方法があるかどうか疑問に思います。
ベストアンサー1
awk
デフォルトでは、スペースはフィールド区切り文字として使用されるため、awk
1回の呼び出しで問題を解決できます。
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
すでに最もコンパクトなソリューションを持っていると思います。