文字列の最後の 20 文字を出力する必要がありますが、単語全体だけです。区切り文字はスペース「」です。この例を考えてみましょう:
string="素早い茶色のキツネが怠け者の犬を飛び越える"
echo $string | テール-c20
戻りますs over the lazy dog
。そして、代わりに返す必要がありover the lazy dog
ます。それを達成する方法を知っていますか?ありがとう!
echo $string | perl -ne 'print "$1\n" if /\b(\S.{0,20})$/'
echo $string | rev | cut -d ' ' -f -20
これは、外部プログラムを使用せずに Bash > 3.2 で動作します。
[[ $string =~ \ (.{0,20})$ ]]
result="$BASH_REMATCH[1]"
UdiM の grep
バージョンをベースに使用しました。