awk
私のSolarisシステムの技術的な理由から、行の最後のフィールドを印刷するために使用することはできません。
awk
1行の最後のフィールドを印刷する(cut
または... etcを使用する)他tr
の代替案は何ですか?
例1:
/usr/bin/hostname
machine1b
/usr/bin/hostname | /usr/bin/sed 's/\(.\{1\}\)/\1 /g' | /usr/bin/awk '{print $NF}'
b
実施例2
echo 1 2 3 4 5 | /usr/bin/awk '{print $NF}'
5
ベストアンサー1
真珠
echo foo bar baz | perl -pe 's/.*[ \t]//'
末尾のスペースを最初に削除する必要がある場合は、次の手順に従います。
echo "foo bar baz " | perl -lpe 's/\s*$//;s/.*\s//'
次の内容はあなたが提供したものです。スプラティック氏コメントから:
echo "foo bar baz " | perl -lane 'print $F[-1]'
吹く
echo foo bar baz | while read i; do echo ${i##* }; done
またはbash
デフォルトのシェルではありません。
echo foo bar baz | bash -c 'while read i; do echo ${i##* }; done'
単一の末尾のスペースを最初に削除する必要がある場合は、次のようにします。
echo "foo bar baz " | while read i; do i="${i% }"; echo ${i##* }; done
trと尾
echo foo bar baz | tr ' ' '\n' | tail -n1
上記のソリューションと比較すると、これは単一の入力ラインでのみ機能します。この方法では、末尾のスペースを抑制します。
echo "foo bar baz " | tr ' ' '\n' | grep . | tail -n1