Jump to content

Recommended Posts

Posted

Есть лог-файл такого вида.

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.

Как прочитать построчно, разложив на переменные по разделителям.

Может можно где-то посмотреть рабочий скрипт для подобного?

Posted

Попробуйте вложенный цикл вида:

for i in `echo $str | tr ':' '\n'`; do

..........

done

Posted

У меня пока проблема прочитать всю строку.

Разделить на поля можно через awk.

Posted

Аноним писал(а) чт, 25 августа 2005 12:02

У меня пока проблема прочитать всю строку.

Разделить на поля можно через awk.

Ну так и читайте все через awk.

Posted

Вот эта конструкция:

while read LINE
do
...
...
done<$LOGFILE

будет считывать файл, указанный в переменной LOGFILE, построчно и записывать считанную строку в переменную LINE.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...