Chinaunix

标题: 命令行输出内容截取的问题 [打印本页]

作者: SeriousCool    时间: 2014-06-07 10:33
标题: 命令行输出内容截取的问题
这个命令:
tcpdump -s0 -A -n -i any | grep 'GET .* HTTP'

输入结果类似于这样:
E...q.@.5.f..rQ.t...fI.P.s._....P.A...GET /static/theme/qq/css/i/subscribe.png HTTP/1.1
E...q.@.5.f..rQ.t...fJ.P).GE....P.A:.<..GET /static/theme/qq/css/i/logo.jpg HTTP/1.1
E..TX4@.7.:.x.*.t....i.P._.M...eP.@.`{..GET /static/theme/qq/css/i/1.gif HTTP/1.1
E...r.@.5.f..rQ.t...fK.PN.H.Fa..P.A:.@..GET /static/theme/qq/css/i/logos.png HTTP/1.1
E...r.@.5.f..rQ.t...fN.P=......pP.A:#...GET /static/theme/qq/css/i/topb.png HTTP/1.1
E...r.@.5.f..rQ.t...fO.P<..q..-vP.A:.e..GET /static/theme/qq/css/i/search.jpg HTTP/1.1
E..jXG@.7.9.x.*.t....j.P.mgE....P.@.....GET /static/theme/qq/css/i/2.gif HTTP/1.1
E...r.@.5.f..rQ.t...fP.P....R.<pP.A:.r..GET /static/theme/qq/css/i/line.jpg HTTP/1.1
E...r.@.5.f..rQ.t...fQ.P....l=..P.A:Z...GET /ajax/loginjs.php?type=account& HTTP/1.1
E..jX]@.7.9.x.*.t....k.Pm.b}k..~P.@..x..GET /static/theme/qq/css/i/3.gif HTTP/1.1

如果让结果只剩下GET和HTTP中间的部分
也就是类似于这样
/static/theme/qq/css/i/subscribe.png
/static/theme/qq/css/i/logo.jpg
/static/theme/qq/css/i/1.gif
/static/theme/qq/css/i/logos.png
/static/theme/qq/css/i/topb.png
/static/theme/qq/css/i/search.jpg
/static/theme/qq/css/i/2.gif
/static/theme/qq/css/i/line.jpg
/ajax/loginjs.php?type=account&
/static/theme/qq/css/i/3.gif

作者: 关阴月飞    时间: 2014-06-07 10:43
grep加个-o可以么?

作者: SeriousCool    时间: 2014-06-07 10:49
关阴月飞 发表于 2014-06-07 10:43
grep加个-o可以么?


加上之后是这样
GET /favicon.ico HTTP
GET /static/js/customize.js HTTP
GET /static/goodsimg/0510-002/1_48.jpg HTTP
GET /ajax/loginjs.php?type=topbar& HTTP
GET /static/theme/qq/css/i/wb.png HTTP
GET /static/theme/qq/css/i/subscribe.png HTTP
GET /static/theme/qq/css/i/logo.jpg HTTP
GET /static/theme/qq/css/i/logos.png HTTP
GET /static/theme/qq/css/i/search.jpg HTTP
GET /static/theme/qq/css/i/topb.png HTTP
GET /ajax/loginjs.php?type=account& HTTP
GET /static/theme/qq/css/i/line.jpg HTTP
GET /static/theme/qq/css/i/hot.gif HTTP
GET /static/theme/qq/css/i/brand.gif HTTP
GET /static/theme/qq/css/i/new.gif HTTP
GET /static/js/jquery.js HTTP
GET /ajax/load_team_time.php?team_id=56929 HTTP
GET /static/theme/qq/css/i/buy_now.png HTTP
GET /static/theme/qq/css/i/load.png HTTP
GET /static/theme/qq/css/i/bg_timg.gif HTTP
GET /static/theme/qq/css/i/qq-btn.gif HTTP
GET /static/theme/qq/css/i/qz-btn.gif HTTP
GET /static/theme/qq/css/i/xy-btn.gif HTTP
GET /static/theme/qq/css/i/163-btn.gif HTTP
GET /images/vip/1.png HTTP
GET /static/js/lazyload/transparent.gif HTTP
GET /static/theme/qq/css/i/bg.png HTTP
^C3712 packets captured


还不算完美
作者: q1208c    时间: 2014-06-07 11:33
这样如何?
  1. sed -r 's/.*GET (.*) HTTP.*/\1/' file2
复制代码

作者: SeriousCool    时间: 2014-06-07 13:02
回复 4# q1208c


    感谢回复,命令又完善了下,
tcpdump -s0 -A -n -i any | grep -o -E '(GET|POST|HEAD) .*'

不能只针对GET了
作者: yestreenstars    时间: 2014-06-07 14:06
  1. awk '{print $2}'
复制代码

作者: q1208c    时间: 2014-06-07 14:25
回复 5# SeriousCool
  1. sed -r 's/^.*(GET|POST|HEAD) ([^ \t]+) HTTP.*/\2/' file2
复制代码

作者: 用户名注册后不能更改    时间: 2014-06-07 19:30
tcpdump -s0 -A -n -i any | grep -Po '(?<=(GET |POST|HEAD)).*(?=HTTP)'
作者: daxuewuhen2014    时间: 2014-06-07 22:54
awk -F"GET" '{print $2}' 1.txt
/static/theme/qq/css/i/subscribe.png

/static/theme/qq/css/i/logo.jpg

/static/theme/qq/css/i/1.gif

/static/theme/qq/css/i/logos.png

/static/theme/qq/css/i/topb.png

/static/theme/qq/css/i/search.jpg

/static/theme/qq/css/i/2.gif

/static/theme/qq/css/i/line.jpg

/ajax/loginjs.php?type=account&

/static/theme/qq/css/i/3.gif
作者: MeRcy_PM    时间: 2014-06-07 23:28
除了六楼最偷懒外最好的是八楼的零宽断言吧
作者: jeffreyst    时间: 2014-06-09 10:51
cat file | grep -oP "(?<=GET ).*(?= HTT)"
/static/theme/qq/css/i/subscribe.png
/static/theme/qq/css/i/logo.jpg
/static/theme/qq/css/i/1.gif
/static/theme/qq/css/i/logos.png
/static/theme/qq/css/i/topb.png
/static/theme/qq/css/i/search.jpg
/static/theme/qq/css/i/2.gif
/static/theme/qq/css/i/line.jpg
/ajax/loginjs.php?type=account&
/static/theme/qq/css/i/3.gif




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2