Ksh

按分隔符拆分字元串並獲取第 N 個元素

  • August 4, 2021

我有一個字元串:

one_two_three_four_five

我需要從上面的字元串中保存一個變數Atwo和變數Bfour

我正在使用 ksh。

使用cutwith_作為欄位分隔符並獲取所需欄位:

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

您還可以使用echo和管道代替 Here 字元串:

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

請注意,如果$s包含換行符,則將返回一個多行字元串,其中包含 的每行中的第2/4個欄位$s,而不是 中的第2/4個欄位。$s

引用自:https://unix.stackexchange.com/questions/312280