У меня есть файл журнала, который содержит, помимо других данных, такие строки:Разбор строки текстового файла
2012-05-23T20:52:11+00:00 heroku[router]: GET myapp.com/practitioner_activities/10471/edit dyno=web.2 queue=0 wait=0ms service=866ms status=200 bytes=48799
2012-05-23T20:52:46+00:00 heroku[router]: GET myapp.com/users/sign_out dyno=web.1 queue=0 wait=0ms service=20ms status=302 bytes=88
2012-05-23T20:52:46+00:00 heroku[router]: GET myapp.com/ dyno=web.13 queue=0 wait=0ms service=18ms status=200 bytes=4680
2012-05-23T20:53:04+00:00 heroku[router]: POST myapp.com/p/ENaCXExu7qNEqzwYYyPs dyno=web.5 queue=0 wait=0ms service=207ms status=302 bytes=119
2012-05-23T20:53:04+00:00 heroku[router]: GET myapp.com/practitioner_activities/welcome dyno=web.3 queue=0 wait=0ms service=57ms status=200 bytes=5061
2012-05-23T20:53:04+00:00 heroku[router]: GET myapp.com/assets/application-print-715276cc0b76d0d82db3ab5866f22a23.css dyno=web.14 queue=0 wait=0ms service=9ms status=200 bytes=76386
Я хотел бы, чтобы разобрать их и складывать их в файл можно открыть с помощью Excel для анализа , Мне нужны Час, Минута, Глагол (GET или POST), url и время обслуживания.
Например, для первой строки выше:
2012-05-23T20:52:11+00:00 heroku[router]: GET myapp.com/practitioner_activities/10471/edit dyno=web.2 queue=0 wait=0ms service=866ms status=200 bytes=48799
Я бы ожидать выход смотреть что-то вроде:
"20", "52", "GET", "myapp.com/practitioner_activities/10471/edit", "866"
Как бы я сделать это в awk
или с коротким рубин скрипт?
помогает, спасибо. –
Я мог бы помочь :-) – Steve
Вы можете использовать 'ORS =" \ "\ n" и 'print' с запятыми (вместо того, чтобы явно указывать' OFS' несколько раз, однако вы все равно должны установить 'OFS', как вы) вместо 'printf' (так как вы не используете строку формата). Или вы можете« printf »\«% d »OFS«% d »OFS«% s »OFS«% s »OFS«% d \ » \ n ", substr ($ 1, length ($ 1) - 13, 2), substr ($ 1, length ($ 1) - 10, 2), $ 3, $ 4, substr (array [2], 0, length (array [2 ]) - 2) ', который разделяет представление и данные. Кроме того, в этом последнем случае вы могли бы использовать более короткое имя переменной, чем' OFS'. Использование 'length' на самом деле не требуется. Временная метка фиксированной длины (вы полагаясь на ... –