回答:
Bashのパラメーター展開を使用できます。
string="foo-bar-123" && printf "%s\n" "${string##*-}"
123
Awkで別のプロセスを使用する場合:
echo "foo-bar-123" | awk -F- '{print $NF}'
または、Sedを使用する場合:
echo "foo-bar-123" | sed 's/.*-//'
Glenn Jackmanが示唆するように、軽い外部プロセスはcut
次のとおりです。
cut -d- -f3 <<< "$string"
cut
; 確かに、ただし最後のフィールドの数がわかっている場合のみ(質問が少しあいまいなので、最後の部分を抽出する簡単なコマンドラインはありますか?)
rev <<< "$string" | cut -d- -f1 | rev
、それではparam.expansionの単純さから遠ざかっています。
cut
:cut -d- -f3 <<< "$string"