У меня много файлов access_log. Это строка из файла из них.
access_log.20111215:111.222.333.13 - - [15/Dec/2011:05:25:00 +0900] "GET /index.php?uid=01O9m5s23O0p&p=nutty&a=check_promotion&guid=ON HTTP/1.1" 302 - "http://xxx.com/index.php?uid=xxx&p=mypage&a=index&sid=&fid=&rand=1681" "Something/2.0 qqq(xxx;yyy;zzz)" "-" "-" 0
Как извлечь uid "01O9m5s23O0p" из строк, которые имеют "p = nutty & a = check_promotion", и вывести их в новый файл.
Например, файл «output.txt» должен быть:
01O9m5s23O0p
01O9m5s0999p
01O9m5s3249p
fFDSFewrew23
SOMETHINGzzz
...
Я попробовал:
grep "p=nutty&a=check_promotion" access* > using_grep.out
и
fgrep -o "p=nutty&a=check_promotion" access* > using_fgrep.out
но печатает всю строку. Я просто хочу получить UID.
Резюме:
1) Find the lines which have "p=nutty&a=check_promotion"
2) Extract uid from those lines.
3) Print them to a file.