2016-01-21 4 views
0

Я получил лог-файл с некоторым материалом данных, как показано нижедобавляющие команды GREP/Grep операция ИЛИ

2016-01-21 16:18:23,644 SECURE POST Data (accounts.google.com): 
Page=SignIn&GALX=lw6hYFRj2vg&gxf=AFoagUWl6uaAvm41g5BiLg4tzAG3rzr4Bw%3A1453389448463&continue=http%3A%2F%2Fmail.google.com%2Fmail%2F&service=mail&rm=false&ltmpl=default&scc=1&ss=1&osid=1&_utf8=%E2%98%83&bgresponse=%21e3hCAbRRQ3hYrxREZng_0CIqYqYCAAAHwVIAAAAPCgAul8aVFVW6vFlJlCUbkcM-dCTX3viATy-tutZZ_Ly-Y5YBPm6Yuj40a_bnqPMlDyoA9UmspmGcwKh4Noz6dvw89DccGJhC0OlSmloJ5VdtG0XAxn35sIzwmEMIgVu2_4O_EstPMi7vmIJCqhPE3h5yCgAQ2KWuWil0RkW9M35uq-7KCq3dOsbPdONTRzD0nhhxKTj2SS5nuHTDxcMqZNyKs-YnNgKJwTqaooxfPHmzbMl2QC9Sn7cGBVmjWjJgpZpLXNKKjXLUYswDkjcI2dIR1-u7nNIapY4f2btHyoQi3DweV12Xck9dPgDNepXpsv9rqgbLzogYKevZtgNvYJnB5TyYl8vLf1zAdQ7gs-bjc4tJ7k-s7CUp6GY8tSk8b9ylmEs99ekZ&pstMsg=1&dnConn=&checkConnection=&checkedDomains=youtube&[email protected]&Passwd=somehardpass&signIn=Sign+in&PersistentCookie=yes&rmShown=1 
2016-01-21 16:21:23,767 POST Data (store.steampowered.com): 
donotcache=1453422082051&username=steamusser 
2016-01-21 16:22:17,378 SECURE POST Data (login.live.com): 
[email protected]&passwd=password&[email protected]&type=11&PPFT=DQ*u1t4V8*JGcTxFANAPwd1ir7J4MwRwvmveEIfUgySN%211dU2tRMIAUjqfG1ZAuzBE2FZlf7kF8%21UFfCIoI0ohkICsbu02bh88rUKcLnLbSfJC%21NzmGFT5OdXr*xoxhRZndArR*PiGXEtlofqMnNEyWBzJ25iXmQPXLG1htBags20SfL6WoNd2OVduOfYehkTDcIOUEs37BdW8OXtVJiIDxcn3DgSZQuzccPLRwStOiq&PPSX=P&idsbho=1&sso=0&NewUser=1&LoginOptions=3&i1=0&i2=1&i3=87238&i4=0&i7=0&i12=1&i13=0&i14=531&i15=1775&i17=0&i18=__Login_Strings%7C1%2C__Login_Core%7C1%2C 

Я использую команду Grep, чтобы получить сайты

grep -oP '\(\K[^)]*' log.txt 

и он показывает мне

accounts.google.com 
store.steampowered.com 
login.live.com 

получить логин/имя пользователя я использую

grep -oP 'login\K[^&]*' log.txt 
    grep -oP 'user=\K[^&]*' log.txt 
    grep -oP 'username=\K[^&]*' log.txt 
    grep -oP 'EMAIL=\K[^&]*' log.txt 

и показывает мне имена пользователей, логины, электронные письма

[email protected] 
username=steamusser 
etc. 

Что я хочу сделать, это получить в одном возвращении

accounts.google.com 
[email protected] 

store.steampowered.com 
username=steamusser 

Как я могу сделать все эти команды Grep в одной строке , Я пробовал операцию OR с | но это не сработает для меня. Я новичок в bash и grep. Могли бы вы, ребята, помочь мне?

ответ

2

просто сделать регулярное выражение вместе:

kent$ grep -oP '\(\K[^)]*|(user|username|Email|login)=[^&]*' file 
accounts.google.com 
[email protected] 
store.steampowered.com 
username=steamusser 
login.live.com 
[email protected] 
Смежные вопросы