Dividir uma string em ksh

4

Estou procurando uma maneira rápida / fácil de dividir uma string no ksh.

Tem vários delimitadores de números (espaços) entre cada item.

Exemplo:

value1 value2                  value3

Alguma sugestão / conselho?

    
por user9398 22.09.2009 / 15:44

3 respostas

5

Usar um loop for com a string de entrada será dividido no espaço em branco.

LIST="value1  value2 value3"
for x in $LIST ; do
    echo $x
done

Rende

value1
value2
value3

ou

LIST="value1  value2 value3"
set -A STRING "$LIST"
for x in $STRING ; do
    echo $x
done

Rende

value1
value2
value3
    
por 22.09.2009 / 15:59
3

Você pode usar uma matriz.

LIST="value1  value2 value3"
set -A values $LIST
echo ${values[0]}

value1
    
por 22.09.2009 / 16:17
0

Tubulação através de sed e opcionalmente grep funciona também

LIST="value1  value2 value3" ;
echo "$LIST" | sed 's/[[:space:]]/\n/g' | grep .

Você pode soltar o grep se também soltar as aspas, o que remove vários espaços, embora outras formatações possam ser afetadas.

LIST="value1  value2 value3" ;
echo $LIST | sed 's/[[:space:]]/\n/g'
    
por 21.01.2016 / 14:23