ksh – Divida la cadena por delimitador y obtenga el elemento N-ésimo

Pregunta:

Tengo una cuerda:

one_two_three_four_five

Necesito guardar en una variable A valor two y en variable B valor four de la cadena anterior

Estoy usando ksh.

Respuesta:

Use cut con _ como delimitador de campo y obtenga los campos deseados:

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

También puede usar echo y pipe en lugar de Here string:

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

Ejemplo:

$ s='one_two_three_four_five'

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

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

Tenga en cuenta que si $s contiene caracteres de nueva línea, devolverá una cadena de varias líneas que contiene el / campo en cada línea de $s , no el / campo en $s .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım