Гость Опубликовано 25 августа, 2005 Жалоба Опубликовано 25 августа, 2005 Есть лог-файл такого вида. Date ; Time ; Port ; RxBytes : TxBytes 2005.08.16;22:00:00;1;100100;500500; 2005.08.16;22:10:00;1;100200;500600; 2005.08.16;22:20:00;1;100400;501700; В RxBytes - снятые значения счетчика нарастающим итогом. Мне надо посчитать трафик за период. Пытаюсь со своим дельфийским подходом прочитать файл построчно в переменные. Хотелось бы обойтись только bash, без Perl. for str in `cat $log_file` do echo $str done Но этот код читает пословно (до разделителя). Из первой строчки читается только Date. Как прочитать построчно, разложив на переменные по разделителям. Может можно где-то посмотреть рабочий скрипт для подобного? Цитата
Гость Опубликовано 25 августа, 2005 Жалоба Опубликовано 25 августа, 2005 Попробуйте вложенный цикл вида: for i in `echo $str | tr ':' '\n'`; do .......... done Цитата
Гость Опубликовано 25 августа, 2005 Жалоба Опубликовано 25 августа, 2005 У меня пока проблема прочитать всю строку. Разделить на поля можно через awk. Цитата
Sleeping Daemon Опубликовано 25 августа, 2005 Жалоба Опубликовано 25 августа, 2005 Аноним писал(а) чт, 25 августа 2005 12:02 У меня пока проблема прочитать всю строку. Разделить на поля можно через awk. Ну так и читайте все через awk. Цитата
Hans R. Steiner Опубликовано 25 августа, 2005 Жалоба Опубликовано 25 августа, 2005 А можно на перле... open (FILE, "file_name"); while ($str = <FILE>){ print $str; }; close (FILE); Цитата
allez Опубликовано 26 августа, 2005 Жалоба Опубликовано 26 августа, 2005 Вот эта конструкция: while read LINE do ... ... done<$LOGFILE будет считывать файл, указанный в переменной LOGFILE, построчно и записывать считанную строку в переменную LINE. Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.