16 февр. 2010 г.

Хитрюга FOR from bash!

Задачка: bash. заставить for не делить по пробелу имена файлов.

Пример:
for F in `echo "str0 str1 str2"; echo; echo "str3 str4 str5"`; do echo "$F" ; done

Результ:
str0
str1
str2
str3
str4
str5




Рецепт:
( IFS=$'\n'; for F in `echo "str0 str1 str2"; echo; echo "str3 str4 str5"`; do echo "$F" ; done )

Результат:
str0 str1 str2
str3 str4 str5

Ключ:
IFS=$'\n'

Примечание:
Конструкция в скобках, ибо после завершения операции IFS восстановился на исходный разделитель. И да, нихто не запрещает указывать иной разделитель, разбор CSV к примеру =)

Комментариев нет:

Отправить комментарий