Разделить строку в кш

15778
user9398

Я ищу быстрый / простой способ разбить строку в ksh.

Он имеет различные числовые разделители (пробелы) между каждым элементом.

Пример:

value1 value2 value3 

Любые предложения / советы?

4

3 ответа на вопрос

5
Tim Desjardins

Использование цикла for с входной строкой будет разбито на пробелы.

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

Урожайность

value1 value2 value3 

или же

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

Урожайность

value1 value2 value3 
Быстро, легко, безболезненно. Спасибо за убедительный ответ. user9398 15 лет назад 0
3
Richard Hoskins

Вы можете использовать массив.

LIST="value1 value2 value3" set -A values $LIST echo $  value1 
0
Martin Mann

Piping through sed and optionally grep works too

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

You can drop the grep if you also drop the quotes which removes multiple spaces though other formatting may be effected.

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

Похожие вопросы