The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
перебор файлов в bash и использованиемспец символов в названиях, !*! stasmus, 29-Май-08, 15:20  [смотреть все]
Как написать на bash цикл перебора всех файлов в директории. В директории содержаться файлы, в именах которых точно присутствуют спец. символы (пробел, <, > и пр. )
  • перебор файлов в bash и использованиемспец символов в назван..., !*! phpcoder, 15:22 , 29-Май-08 (1)
    >Как написать на bash цикл перебора всех файлов в директории. В директории содержаться файлы, в именах которых точно присутствуют спец. символы (пробел, <, > и пр. )

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

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

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

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

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

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

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

      • перебор файлов в bash и использованиемспец символов в назван..., !*! madskull, 16:33 , 29-Май-08 (4)
        >Ага, спасибо, я пытался реализовать это так
        >
        >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 использовать
      • про (не)экранирование, !*! Andrey Mitrofanov, 16:34 , 29-Май-08 (5)
        >>>Как написать на bash цикл перебора всех файлов в директории. В директории содержаться файлы, в именах которых точно присутствуют спец. символы (пробел, <, > и пр. )
        >Ага, спасибо, я пытался реализовать это так
        >
        >for FILENAME in `find . -type f`
        >do
        >
        >объясните пож-сто, почему не работает с for?

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

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

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


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

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




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

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