文字列があります。
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