2016-11-03 29 views
1

我想解析搜索wps数据的airodump-ng工具的输出。我知道自airodump-ng 1.2 rc2以来,有一个参数--wps,它显示了wps数据的另一个新列。令人惊讶的是使用-w选项将结果写入文件,文件上没有wps信息!只显示屏幕...复杂的Bash stdout(airodump)

所以我认为也许可能是一个好主意,捕获屏幕的输出,并用awk和/或正则表达式手动解析所有内容。我观察到的第一件事是标准输出是不正常的。使用像这样的T恤airodump-ng wlan0mon | tee "/path/to/log"它会产生一个空文件。搜索我发现这个职位:How do I write stderr to a file while using "tee" with a pipe?

有了这种解决方案,我可以做airodump-ng wlan0mon > >(tee /path/to/log) 2> >(tee /path/to/log >&2)和文件充满了所有的数据......问题是有很多重复的数据......我只想要屏幕的最后一个状态在停止airodump之前...像某种文件上的数据状态的“屏幕截图”,然后我可以尝试解析...任何有关如何得到这个的想法?提前致谢。

+0

使用'screen' ... –

+0

我从未使用过命令。不知道是什么。我会研究它以了解它是如何工作的。无论如何可能会更有助于某些迹象。谢谢。 – OscarAkaElvis

回答

0

坦率地说,我觉得你最好还是先捕获所有的输出,但如果你只想要最后N行,试试:

{ airodump-ng wlan0mon 2>&1 | tee /dev/tty; } | tail -$N > /path/to/log 
+0

感谢您的回答。捕获所有的输出不是一个选项... 30秒的扫描(这是非常正常的)可以产生成千上万的线路,因为一切都一再重复......另一方面,我尝试了你的建议,但这是不工作...我尝试了,但没有快乐。不知道我是否做错了什么......我不这么认为。无论如何,我们有未知的N线的额外问题...我不知道扫描之前,如果将是8线或30线... – OscarAkaElvis

+0

“成千上万”的线不是很多。捕获输出,然后用尾部对其进行后处理。 –