LINUX.ORG.RU

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


0

0

Есть строка вида var1="file.jpg file.jpg file3.jpg" Надо циклом в скрипте пройтись по каждому слову и применить к нему какое-то действие. for i in $var; do.. не помогает. Он видит его как целую строчку. Есть решения?

anonymous

???

$ var="a b c"
$ for i in $var; do echo $i; done
a
b
c

grob ★★★★★
()

В zsh этот скрипт не работает, зато работает в bash. Если shell не важен просто добавь в начало скрипта:

#!/bin/bash

slackophile
()
Ответ на: комментарий от slackophile

Люди, ну стал бы я спрашивать, если б он отрабатывал так просто. В скрипте у меня он таким образом не работает. Видит исключительно как целую строку. Знает кто все-таки способ?
Допустим я придуамл изврат через awk:
Пускаю скрипт for i in `seq 1 $word_count`; do
echo $var | awk -F " " '{print $word}' ... (т.е. выдераем по словам)
Проблема в том, что ^^^^^^ такая конструкция не работает, а как изменять этот параметрт в цикле - я хз.

anonymous
()

Страно ... 

1. A ты IFS не менял?
2. Точно $var здесь <<for i in $var; do>>  без кавычек?
3. Какой shell?

sdio ★★★★★
()
Ответ на: комментарий от sdio

Вот млин.. Точно, про IFS то я и забыл. sdio, спасиб.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.