Есть два файла.
В первом файле 4000 строк. (access_log_1)
Во втором файле 50000 строк. (access_log)Нужно взять последнюю строку из файла access_log_1 и найти первое совпадение в файле access_log. В идеале нужен номер строки, но пока упростим задачу.
=====================================================================================
#!/bin/bash
# получаем последнюю строку из файла access_log_1
# заключаем ее в одинарные кавычки чтобы grep искал строку целиком.
STR_END="\'`tail -1 access_log_1`\'"
# выводим эту строку чтобы убедиться, что строка в кавычках
echo $STR_END
# прочитав man grep находим ключик -F PATTERN is a set of newline-separated strings
cat access_log|grep -F `echo $STR`
=====================================================================================
В результате получаем не строку которую искали а куски из нее с ошибками grep.
grep: [06/Oct/2006:18:46:03: No such file or directory
grep: +0400]: No such file or directory
grep: "GET: No such file or directory
grep: /simple_request.php No such file or directory
grep: HTTP/1.1": No such file or directory
grep: 200: No such file or directory
grep: 206: No such file or directory
grep: "Mozilla/4.0: No such file or directory
grep: (compatible;: No such file or directory
grep: MSIE: No such file or directory
grep: 6.0;: No such file or directory
grep: Windows: No such file or directory
grep: NT: No such file or directory
grep: 5.1;: No such file or directory
grep: SV1)"': No such file or directory
Пожалуйста помогите разобраться!
p.s.
пример строки access_log:
'99.99.100.100 - - [06/Oct/2006:18:46:03 +0400] "GET /simple_request.php HTTP/1.1" 200 206 "http://www.host.ru/index.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"'