>>>sed -n '1!G;h;$p' 1.txt
> Уже на авке сделал, но эту можно доделать..., быстрее наверно будет.Не будет. //Весь 500Мб, скажем, лог в сед всосать -- ооооооочень долго.
man tac - _Это _будет быстрее.
|tac |sed -n '/паттерн/{p;q}' , если я правильно понял матершину~~~
PS: Хотя _не с файлом и tac притормозит, но по-любому быстрее в памяти sed-а~
$ time cat error.log.1| tac |head -1
2012/02/16 06:25:13 [notice] 2286#0: reopening logs
real 0m0.937s
$ time tac <error.log.1 |head -1
2012/02/16 06:25:13 [notice] 2286#0: reopening logs
real 0m0.002s
$ time cat error.log.1 |sed -n '/client/h;${g;p}'
2012/02/15 17:44:47 [info] 2286#0: *11656197 proxied session done, client: 10.1.4.190, server: 0.0.0.0:110, login: "client", upstream: 127.0.0.2:110
real 0m1.942s
$ time cat error.log.1 |tac |sed -n '/client/{p;q}'
2012/02/15 17:44:47 [info] 2286#0: *11656197 proxied session done, client: 10.1.4.190, server: 0.0.0.0:110, login: "client", upstream: 127.0.0.2:110
real 0m1.859s
$ wc -cl error.log.1
2848712 373326051 error.log.1
PPS:
$ time seq 1 40000| sed -n '1!G;h;$p' >/dev/null
real 0m1.594s
$ time seq 1 40000| tac >/dev/null
real 0m0.039s