Bashの「foo-bar-baz」から「foo」を抽出する方法は? [コピー]

Bashの「foo-bar-baz」から「foo」を抽出する方法は? [コピー]

fooBashの文字列からコンテンツを抽出しようとしています。"foo-bar-baz"

文字列置換または類似の機能(外部ツールなし)を使用してこれを行う方法についてのアイデアはありますか?

私は成功せずにこれを試しました。

$ str="foo-bar-baz"
$ echo ${str%-*}
foo-bar

これも機能しません。

$ str="foo-bar-baz"
$ echo ${str#*-}
bar-baz

定義を取得する方法についてのアイデアはありますかbar

ベストアンサー1

$ str="foo-bar-baz"

$ echo "${str%%-*}"
foo

$ echo "${str##*-}"
baz

$ var="${str#*-}"
$ echo "$var"
bar-baz
$ echo "${var%-*}"
bar

おすすめ記事