The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"перебор файлов в bash и использованиемспец символов в назван..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"перебор файлов в bash и использованиемспец символов в назван..."  
Сообщение от stasmus (ok) on 29-Май-08, 15:20 
Как написать на bash цикл перебора всех файлов в директории. В директории содержаться файлы, в именах которых точно присутствуют спец. символы (пробел, <, > и пр. )
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "перебор файлов в bash и использованиемспец символов в назван..."  
Сообщение от phpcoder email(??) on 29-Май-08, 15:22 
>Как написать на bash цикл перебора всех файлов в директории. В директории содержаться файлы, в именах которых точно присутствуют спец. символы (пробел, <, > и пр. )

find DIR -type f | while read FILENAME; do
# здесь что-то с файлами делаем
echo "$FILENAME"
done

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "перебор файлов в bash и использованиемспец символов в назван..."  
Сообщение от stasmus (ok) on 29-Май-08, 16:12 
>>Как написать на bash цикл перебора всех файлов в директории. В директории содержаться файлы, в именах которых точно присутствуют спец. символы (пробел, <, > и пр. )
>
>find DIR -type f | while read FILENAME; do
># здесь что-то с файлами делаем
>echo "$FILENAME"
>done

Ага, спасибо, я пытался реализовать это так

for FILENAME in `find . -type f`
do
# здесь что-то с файлами делаем
cat "$FILENAME"
done

объясните пож-сто, почему не работает с for?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "перебор файлов в bash и использованиемспец символов в назван..."  
Сообщение от phpcoder email(??) on 29-Май-08, 16:17 
>for FILENAME in `find . -type f`
>do
># здесь что-то с файлами делаем
>cat "$FILENAME"
>done
>
>объясните пож-сто, почему не работает с for?

Не знаю, у меня и с for работает :-)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "перебор файлов в bash и использованиемспец символов в назван..."  
Сообщение от madskull (??) on 29-Май-08, 16:33 
>Ага, спасибо, я пытался реализовать это так
>
>for FILENAME in `find . -type f`
>do
># здесь что-то с файлами делаем
>cat "$FILENAME"
>done
>
>объясните пож-сто, почему не работает с for?

потому что `find . -type f` "разворачивается"  в список, разделенный пробелами. следовательно, и имена файлов рзбиваются на части имеющимися пробелами.

кстати, должно работать


for FILENAME in *; do

и

find . -type f | while read FILENAME; do

причем вместо find можно и ls использовать
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "про (не)экранирование"  
Сообщение от Andrey Mitrofanov on 29-Май-08, 16:34 
>>>Как написать на bash цикл перебора всех файлов в директории. В директории содержаться файлы, в именах которых точно присутствуют спец. символы (пробел, <, > и пр. )
>Ага, спасибо, я пытался реализовать это так
>
>for FILENAME in `find . -type f`
>do
>
>объясните пож-сто, почему не работает с for?

Потому что после подстановки результата команды из `...` он, результат, интерпретируется шелом: имена с пробелами "разваливаются" на части, а с < > пытаютсся стать перенаправлениями из/в файл...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "про (не)экранирование"  
Сообщение от stasmus (ok) on 29-Май-08, 16:45 
>
>Потому что после подстановки результата команды из `...` он, результат, интерпретируется шелом: имена с пробелами "разваливаются" на части, а с < > пытаютсся стать перенаправлениями из/в файл...

А как вообще интерпретирует шел подобные ситуации (не обязательно например выборка по файлам, возможно некая последовательность awk grep... )?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "про (не)экранирование"  
Сообщение от newser (ok) on 29-Май-08, 18:09 
>>
>>Потому что после подстановки результата команды из `...` он, результат, интерпретируется шелом: имена с пробелами "разваливаются" на части, а с < > пытаютсся стать перенаправлениями из/в файл...
>
>А как вообще интерпретирует шел подобные ситуации (не обязательно например выборка по
>файлам, возможно некая последовательность awk grep... )?

Об этом и многом другом, как ни странно, подробно написано в man bash. :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру