Bash 查找和剪切字符串的命令
Bash command to find and cut string
我正在使用 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" 的字符串。
你可以试试 grep -E "^Cookie:.*PHPSESSID.* id=[^ ]+$"
。
它匹配
的一行
- 开始(
^
)使用 Cookie:
- 包含 PHPSESSID (
.*PHPSESSID.*
)
- 并以
id=
字段结束 ($
),因为 [^ ]
禁止在 id=
之后使用空格
使用 grep 命令与需要的正则表达式匹配
我正在使用 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" 的字符串。
你可以试试 grep -E "^Cookie:.*PHPSESSID.* id=[^ ]+$"
。
它匹配
的一行- 开始(
^
)使用 Cookie: - 包含 PHPSESSID (
.*PHPSESSID.*
) - 并以
id=
字段结束 ($
),因为[^ ]
禁止在id=
之后使用空格
使用 grep 命令与需要的正则表达式匹配