2012-02-28 2 views

ответ

10
$ IFS=/ read -a foo <<< 'abc def/ghi/jkl' 
$ echo "${foo[0]}*${foo[1]}*${foo[2]}" 
abc def*ghi*jkl 
+0

Установка IFS является лучшим способом пойти. Конечно, я подозреваю, что '$ www' не будет иметь пробелов, а скорее'% 20'. Не забудьте «отменить IFS» в конце! Будет также работать с 'IFS =/for i в $ www; делать ... ; сделанный ; unset IFS' – Benoit

+1

Вам не нужно отменять '$ IFS' в конце, так как это обозначение будет устанавливать его только на время выполнения команды. –

+1

['IFS =/foo = ($ www)'] (http://ideone.com/MWWTMi) тоже работает – jfs

3

Ваш трюк будет работать, если бы вы сказали tr, какая черта должна быть переведена на:

for w in $(echo "what/the/heck" | tr "/" " ") ; do echo $w; done 
what 
the 
heck 
Смежные вопросы