The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
BASH. Как читать файл построчно?, !*! teebot, 03-Фев-03, 16:21  [смотреть все]
Здравствуйте.

Появилась необходимость читать содержимое файла построчно. В строке присудствуют пробелы поэтому так
elist=$(/bin/cat /tmp/robot/ea)
for str in $elist;
do
...
done
не получается, берутся отдельные слова.

Как читать строки целиком, независимо от того етсь там пробелы или другие символы или нет?

  • RE: BASH. Как читать файл построчно?, !*! zlinuxan, 18:04 , 03-Фев-03 (1)
    Попробуй делать тож'самое на перле.
    Синтаксис почти один в один и есть такая штука, как split, с которой ты хоть пробелы в плюсики, хоть наоборот можешь вертеть %)

    Кстати, слышал слух, что в линухах могут вообще shell сотоварищи заменить перлом.
    Во как!

    • RE: BASH. Как читать файл построчно?, !*! teebot, 18:22 , 03-Фев-03 (2)
      >Попробуй делать тож'самое на перле.
      >Синтаксис почти один в один и есть такая штука, как split, с
      >которой ты хоть пробелы в плюсики, хоть наоборот можешь вертеть %)
      >
      >
      >Кстати, слышал слух, что в линухах могут вообще shell сотоварищи заменить перлом.
      >
      >Во как!

      Ты знанешь пробовал, но там другая проблема (а может вовсе и не проблема) мне надо вызвать скрипт.
      прога такая:
      open (FILE, "имя_файла");
      @lines=<FILE>;
      close (FILE);
      $kol=@lines;
      for ($i=0;$i<$kol;i++)
      {
        #тут вызывается скрипт которому передается результат чтения файла - строка
      }
      так вот сколько бы повторов не было, цикл вываливается после первого.

      • RE: BASH. Как читать файл построчно?, !*! hellman, 18:31 , 03-Фев-03 (3)
        >>Попробуй делать тож'самое на перле.
        >>Синтаксис почти один в один и есть такая штука, как split, с
        >>которой ты хоть пробелы в плюсики, хоть наоборот можешь вертеть %)
        >>
        >>
        >>Кстати, слышал слух, что в линухах могут вообще shell сотоварищи заменить перлом.
        >>
        >>Во как!
        >
        >Ты знанешь пробовал, но там другая проблема (а может вовсе и не
        >проблема) мне надо вызвать скрипт.
        >прога такая:
        >open (FILE, "имя_файла");
        >@lines=<FILE>;
        >close (FILE);
        >$kol=@lines;
        >for ($i=0;$i<$kol;i++)
        >{
        >  #тут вызывается скрипт которому передается результат чтения файла - строка
        >
        >}
        >так вот сколько бы повторов не было, цикл вываливается после первого.

        не знаю почему может вываливаться, но помоему свот такой код приятней.
        open(FILE, "< /tmp/file");
        foreach my $line (<FILE>) {
        &some_sub($line);
        }
        close(FILE);

        ну или
        open(FILE, "< /tmp/file");
        my @file = <FILE>;
        close(FILE);
        foreach my $line (@file) {
        &some_sub($line);
        }


        где ессесно функция some_sub что то делает со строкой.

        • RE: BASH. Как читать файл построчно?, !*! teebot, 18:58 , 03-Фев-03 (4)
          >>>Попробуй делать тож'самое на перле.
          >>>Синтаксис почти один в один и есть такая штука, как split, с
          >>>которой ты хоть пробелы в плюсики, хоть наоборот можешь вертеть %)
          >>>
          >>>
          >>>Кстати, слышал слух, что в линухах могут вообще shell сотоварищи заменить перлом.
          >>>
          >>>Во как!
          >>
          >>Ты знанешь пробовал, но там другая проблема (а может вовсе и не
          >>проблема) мне надо вызвать скрипт.
          >>прога такая:
          >>open (FILE, "имя_файла");
          >>@lines=<FILE>;
          >>close (FILE);
          >>$kol=@lines;
          >>for ($i=0;$i<$kol;i++)
          >>{
          >>  #тут вызывается скрипт которому передается результат чтения файла - строка
          >>
          >>}
          >>так вот сколько бы повторов не было, цикл вываливается после первого.
          >
          >не знаю почему может вываливаться, но помоему свот такой код приятней.
          >open(FILE, "< /tmp/file");
          >foreach my $line (<FILE>) {
          > &some_sub($line);
          >}
          >close(FILE);
          >
          >ну или
          >open(FILE, "< /tmp/file");
          >my @file = <FILE>;
          >close(FILE);
          >foreach my $line (@file) {
          > &some_sub($line);
          >}
          >
          >
          >где ессесно функция some_sub что то делает со строкой.

          что самое интересное нужно вызывать не перловскую процедуру, а BASH скрипт корорый написан до меня.
          делаю exec "путь_и_имя_скрипта";
          он отрабатывает, а цикл уже не продолжается.

          • RE: BASH. Как читать файл построчно?, !*! zlinuxan, 04:11 , 04-Фев-03 (5)

            >что самое интересное нужно вызывать не перловскую процедуру, а BASH скрипт корорый
            >написан до меня.
            >делаю exec "путь_и_имя_скрипта";
            >он отрабатывает, а цикл уже не продолжается.
            Так вызывай его в цикле типа вообще тупого
            my $x=1;
                   while ($x){
                     exec_до _посинения;
                              }


            • RE: BASH. Как читать файл построчно?, !*! teebot, 09:52 , 04-Фев-03 (6)
              >
              >>что самое интересное нужно вызывать не перловскую процедуру, а BASH скрипт корорый
              >>написан до меня.
              >>делаю exec "путь_и_имя_скрипта";
              >>он отрабатывает, а цикл уже не продолжается.
              >Так вызывай его в цикле типа вообще тупого
              > my $x=1;
              >       while ($x){
              >         exec_до _посинения;
              >            
              >      }

              Спасибо за совет, но задача состоит из двух частей.
              1) Читать из файла построчно
              2) Прочитанное передавать BASH скрипту.

              зачем же мне бесконечный while если нужно ровно столько сколько строк в файле.

              Видимо надо иначе подойти к решению проблемы. Наверное я выбрал не самы лучший алгоритм.

  • RE: BASH. Как читать файл построчно?, !*! uldus, 14:07 , 04-Фев-03 (7)
    >Появилась необходимость читать содержимое файла построчно.

    cat file.txt| while read line; do                    
        echo "$line"
    done




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

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