2012-02-28 10 views

Odpowiedz

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

Ustawianie IFS jest najlepszym sposobem, aby przejść. Oczywiście podejrzewam, że '$ www' nie będzie zawierać spacji, ale raczej'% 20's. Nie zapomnij o niezresetowaniu IFS na końcu! Będzie także działać z 'IFS =/for i in $ www; robić ... ; Gotowe ; unset IFS' – Benoit

+1

Nie trzeba resetować '$ IFS' na końcu, ponieważ ta notacja ustawi go tylko na czas trwania polecenia. –

+1

[IFS =/foo = ($ www) '] (http://ideone.com/MWWTMi) też działa – jfs

3

Twój trik będzie działać, jeśli powiesz tr, co ukośnik powinny być przetłumaczone na język:

for w in $(echo "what/the/heck" | tr "/" " ") ; do echo $w; done 
what 
the 
heck 
Powiązane problemy