Guest Posted August 25, 2005 Report Posted August 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. Как прочитать построчно, разложив на переменные по разделителям. Может можно где-то посмотреть рабочий скрипт для подобного? Quote
Guest Posted August 25, 2005 Report Posted August 25, 2005 Попробуйте вложенный цикл вида: for i in `echo $str | tr ':' '\n'`; do .......... done Quote
Guest Posted August 25, 2005 Report Posted August 25, 2005 У меня пока проблема прочитать всю строку. Разделить на поля можно через awk. Quote
Sleeping Daemon Posted August 25, 2005 Report Posted August 25, 2005 Аноним писал(а) чт, 25 августа 2005 12:02 У меня пока проблема прочитать всю строку. Разделить на поля можно через awk. Ну так и читайте все через awk. Quote
Hans R. Steiner Posted August 25, 2005 Report Posted August 25, 2005 А можно на перле... open (FILE, "file_name"); while ($str = <FILE>){ print $str; }; close (FILE); Quote
allez Posted August 26, 2005 Report Posted August 26, 2005 Вот эта конструкция: while read LINE do ... ... done<$LOGFILE будет считывать файл, указанный в переменной LOGFILE, построчно и записывать считанную строку в переменную LINE. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.