我的。txt
文件包含一些用户名和密码。一行f.e
user=testuser&password=somefunnyletters&cookie=true
我需要在没有其余部分的情况下获得 user = testuser 这个短语。
为了得到这条线,我使用了grep ^user= mylogfile.txt
。我试过
egrep -e "user=.*&" mylogfile.txt
但得到了同样的结果。
我是bash和grep的新手。你可以帮帮我吗? :)
编辑: 谢谢你的回答 你的sed解决方案甚至更好:)
2016-01-19 10:34:53,707 POST Data (www.example.com):
user=testuser
2016-01-19 10:35:05,800 POST Data (accounts.google.com):
Page=SignIn
2016-01-19 10:35:11,118 SECURE POST Data (accounts.google.com):
Page=SignIn
2016-01-19 10:35:24,273 POST Data (mail.example.com):
username=ACCOUNT2
我的log.txt有一小部分
2016-01-19 10:35:05,800 POST Data (accounts.google.com):
Page=SignIn&GALX=4sniYBF1KS4&gxf=AFoagUUWrsxLske465iHUiS7iLFTghUUVA%3A1453195970318&continue=http%3A%2F%2Fmail.google.com%2Fmail%2F&service=mail&rm=false<mpl=default&scc=1&ss=1&osid=1&checkedDomains=youtube&checkConnection=&pstMsg=1&_utf8=%E2%98%83&bgresponse=%21eXpCtDFcUk0RqTZEOIof1FvHKm8CAAAAfVIAAAAPCgBHGejcPtA_v4HvVc7ixkq7wxLdz6ZvzEljoDpRfUwMD_czUNuCDpeVoBlAC77pd_nqcMFOMx6CkFDSBsZ1oCvv1M2h9WokdDkqANw3H-8BGAog77GOKPHJHR-FDUo5vutu5SKbkioAXvel_pcJOttUSp6glPAFQswWhastRHyyRn9axImbsoKlYsob3h604WklobLZNjQVbf9_cS1jbMQE-XWYBPE1FRXQzQysqKBLGHAmCUHvlaQfxYs1NsxAwmkNLoRBDAefVHTNT4YHqKEJ0LNkun8BnyxKT0jPTj7AebLpRUclWa9jF1FuVuakfi6ZbpqJnLK0XCFyQ8maiHvQh_SraectIJg_n4hBMkQ_riKZtRWPZCghzRS87Q3xezq2l-grUgO-&pstMsg=1&dnConn=&checkConnection=&checkedDomains=youtube&Email=EXAMPLEMAILUSER&Passwd=ewuoieuroiuio&signIn=Sign+in&PersistentCookie=yes&rmShown=1
有没有可能得到这个
2016-01-19 10:35:05,800 POST Data (accounts.google.com):
和电子邮件= EXAMPLEMAILUSER?
我需要获得Email =,user =和username =。得到哪个网站是用户名/电子邮件会很好:)
这对我有很大帮助;)
答案 0 :(得分:3)
grep -oP 'user=\K[^&]*'
或
grep -oP '^[^=]*=\K[^&]*' file
检查这个例子:
kent$ echo "user=testuser&password=somefunnyletters&cookie=true"|grep -oP 'user=\K[^&]*'
testuser
kent$ echo "user=testuser&password=somefunnyletters&cookie=true"|grep -oP '^[^=]*=\K[^&]*'
testuser
使用grep测试:
kent$ grep --version|head -1
grep (GNU grep) 2.22
答案 1 :(得分:0)
您可以使用SED执行此操作:
sed 's/&.*//' mylogfile.txt
找到第一个'&amp;'以及之后的所有内容(s /&amp;。* /)并替换为'empty'(//)