文字列を区切り文字に分割してN番目の要素を取得する

文字列を区切り文字に分割してN番目の要素を取得する

文字列があります。

one_two_three_four_five

A上記の文字列に変数値とtwo変数B値を格納する必要があります。four

kshを使用しています。

ベストアンサー1

cutフィールド区切り記号としてwithを使用し、_必須フィールドを取得します。

A="$(cut -d'_' -f2 <<<'one_two_three_four_five')"
B="$(cut -d'_' -f4 <<<'one_two_three_four_five')"

echoここでは、文字列の代わりにパイプを使用することもできます。

A="$(echo 'one_two_three_four_five' | cut -d'_' -f2)"
B="$(echo 'one_two_three_four_five' | cut -d'_' -f4)"

例:

$ s='one_two_three_four_five'

$ A="$(cut -d'_' -f2 <<<"$s")"
$ echo "$A"
two

$ B="$(cut -d'_' -f4 <<<"$s")"
$ echo "$B"
four

改行が含まれている場合、各行の2番目と4番目のフィールドではなく、各行の2番目4番目のフィールドを含む$s複数行の文字列が返されます。$s$s

おすすめ記事