LINUX.ORG.RU

как посчитать количество строк в файле с параметрами


0

1

Доброго времени суток.

Есть лог файл апача.

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



Последнее исправление: linuxoid2010 (всего исправлений: 1)

Ответ на: комментарий от anonymous

grep -c '«post' access.log

с одним получается

как быть чтоб одновременно искал по двум выражениям

точнее по дате и по слову

„29/AUG“ и '„POST'

linuxoid2010
() автор топика
Ответ на: комментарий от anonymous

Но на самом деле быстрее и проще использовать perl.
Это наглядно видно из вот этих тестов:

Братюнь, тесты не приаттачились, попробуй ещё разок

zolden ★★★★★
()

я тебе про выборку определенного дня не написал шоб ты сам мозг врубил

blokant ★★
()
Ответ на: unix way от blokant

cat file.log | grep «POST» | wc -l

«cat» зачем, пионэр?

anonymous
()
Ответ на: комментарий от justAmoment

Вот, блин, чего-то посчитал, но не того, что хотел ТС. Вот так правильнее будет.

Если формат лога такой

8.8.8.8 - - [29/AUG/2012:11:07:48 +4000] "POST ..."
8.8.4.4 - - [29/AUG/2012:11:07:49 +4000] "GET ..."
тогда
awk '$6~/^"GET|^"POST/ {i=substr($4,2,6)" "substr($6,2,length($6)-1); X[i]++;} END {for (i in X) {print i" "X[i]}}' access.log | sort -rk 3
с учётом года так
awk '$6~/^"GET|^"POST/ {i=substr($4,2,11)" "substr($6,2,length($6)-1); X[i]++;} END {for (i in X) {print i" "X[i]}}' access.log | sort -rk 3

justAmoment ★★★★★
()
#!/usr/bin/sed -nf

/GET/! {
	#p
	b
}

# Same as cat -n from now
x
/^$/ s/^.*$/1/
G
h
s/^/      /
s/^ *\(......\)\n/\1  /p
x
s/\n.*$//
/^9*$/ s/^/0/
s/.9*$/x&/
h
s/^.*x//
y/0123456789/1234567890/
x
s/x.*$//
G
s/\n//
h
drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.