ハイフンの後の文字列の最後の部分を取得する


10

ハイフンで区切られた文字列の最後の部分を抽出する簡単なコマンドラインはありますか?たとえば、から抽出123したいですfoo-bar-123

回答:


23

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"

シェルパラメータの展開が最良の答えです。軽量、外部ツールがあるcutcut -d- -f3 <<< "$string"
グレン・ジャックマン

1
@glennjackman -再:cut; 確かに、ただし最後のフィールドの数がわかっている場合のみ(質問が少しあいまいなので、最後の部分を抽出する簡単なコマンドラインはありますか?
don_crissti

2
@don_crissti、確かに。1つは可能ですがrev <<< "$string" | cut -d- -f1 | rev、それではparam.expansionの単純さから遠ざかっています。
グレン・ジャックマン、2015年


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.