Bash命令查找和剪切字符串

时间:2016-01-03 13:00:03

标签: regex string bash cut

我使用tcpdump生成txt信息。在输出中有很多信息包含类似的东西,例如:

Cookie: id=8xdza1ud39t459hv5bkth4t9gx71dicp; _ga=GA1.2.1890484279.1447252334; __gfp_64b=64smeVuOU7LSnfV8__mvHUkZFQF4lddYYY2X0c0HYAj.S7; __gads=ID=6ccc5cd620798f1a:T=1451575639:S=ALNI_MYeOVLFzU3qJTBxFq6KrdK10QDVrg; __utma=37331766.1890484279.1447252334.1451770396.1451770396.1; __utmz=37331766.1451770296.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); PHPSESSID=70c71a0c25d7d0425c657cee8f30dc2d; OX_sd=1; OX_plg=swf|shk|pm; _gat=1; _gat_newTracker=1; id=iyybhxg7524r2gcuvpguzvbse18c9c21

是否可以仅从我所拥有的信息中删除此信息并将其发送到另一个输出?为了匹配上面的cookie,它需要是一个以" Cookie"开头的字符串。 ,结束于" id"属性和包含" PHPSEESSID"。

2 个答案:

答案 0 :(得分:3)

你可以试试grep -E "^Cookie:.*PHPSESSID.* id=[^ ]+$"

匹配

  • 使用Cookie启动(^):
  • 包含PHPSESSID(.*PHPSESSID.*
  • 并以$字段结束(id=),因为[^ ]禁止id=后面的空格

答案 1 :(得分:0)

使用grep命令和所需的正则表达式匹配