フィールドを連結し、行から末尾のスペースを削除します。

フィールドを連結し、行から末尾のスペースを削除します。

スペースで区切られた3つのフィールドを持つ文字列があります。最後の2つのフィールドをリンクし、最後の改行が削除されたことを-確認したいと思います。

以下はうまくいきます:

echo -n "abc 1234 5679" | tr -s "" |cut -d ' ' -f2 -f3 | tr " " "-"  

perlオンラインで誰かがこれを行うことができるかどうか疑問に思います。

ベストアンサー1

使用awk:

printf 'abc 1234 5679' | awk '{printf "%s", $2"-"$3}'

またはperlパターンawk-a):

printf 'abc 1234 5679' | perl -ape '$_ = "$F[1]-$F[2]"'

どちらも行区切り文字がある場合は削除します。これを維持するにはGNUを使用してくださいawk

printf 'abc 1234 5679\n' | gawk '{printf "%s", $2"-"$3 RT}'

そしてperl

printf 'abc 1234 5679\n' | perl -ape 's/.*/$F[1]-$F[2]/'

おすすめ記事