1

我正在尝试使用本文中讨论的技术生成给定 NAT 网关后面的客户端/设备数量的报告

基本上我需要编写一个同时查找“用户代理”和“生存时间”的脚本

grep "    User-Agent:" *.txt

grep "    Time to live:" *.txt

这些正是这些行在我的输出文件中的格式,我很高兴将文本放在行尾。他们分开工作,但我没有成功地将它们结合起来。

我最近的尝试是:

egrep -w '    User-Agent:'|'    Time to live:' ../*.txt
grep '    User-Agent:' ../*.txt' && grep '    Time to live:' ../*.txt

(我一直在从 Wireshark 手动导出文本格式文件,如果有人建议通过脚本执行此操作,我将不胜感激,我有大量文件要做。)

我寻找了一个类似的线程,但我没有找到一个,如果一个已经存在(如我所料)我很抱歉,是否有人可以向我提供帮助链接或提供它,我将不胜感激。

编辑:我想我应该提一下,我正在寻找的两个短语位于由其他数据分隔的行上,因此解决方案需要在如下示例中搜索这两个短语:

User-Agent:
blahblahblah:
halbhalbhalb:
Time to live:

egrep ' 用户代理:| 生存时间:' ../*.txt 给了我:

desktop:~/Documents/scripts$ ./pcap_ttl_OS_useragent 
../scripttextfile1p.txt:    Time to live: 128
../scripttextfile1p.txt:    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0\r\n
../scripttextfile2p.txt:    Time to live: 55
../scripttextfile3p.txt:    Time to live: 128
../scripttextfile3p.txt:    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0\r\n
4

1 回答 1

1
egrep '    User-Agent:|    Time to live:' ../*.txt

应该管用。

我认为这不会-w为您提供任何“功能”。

此外,您想引用整个“扩展”正则表达式,将|交替字符包含为一个字符串。

最后,不清楚每个字段的前导空格是制表符还是一组空格的结果。这会影响正确的文本字符串放入搜索模式。为了确认空白类型,我喜欢使用

grep 'User-Agent' ../*.txt | head -1 | cat -vet

将显示以太

.....    User-Agent ....

或者

.....^IUser-Agent .....

^I是制表符的表示形式。

IHTH

于 2013-07-10T18:16:33.887 回答