我的pcapng文件很大,我想根据需要的wireshark过滤器拆分它们。我想借助bash脚本并使用pcapsplitter来分割文件,但是当我使用循环时,它总是给我相同的文件。
我写了一个小代码。
#!/bin/bash
for i in {57201..57206}
do
mkdir destination/$i
done
tcp="tcp port "
for i in {57201..57206}
do
tcp="$tcp$i"
pcapsplitter -f file.pcapng -o destination/$i -m bpf-filter -p $tcp
done
问题是,我可以使用bash来实现目标吗? 如果是,为什么它不起作用?
答案 0 :(得分:1)
当然,这是Bash可以做的。
关于脚本,我首先想到的是这一行:
pcapsplitter -f file.pcapng -o destination/$i -m bpf-filter -p $tcp
其中$tcp
的值实际上是tcp port 57201
(在下一轮中跟随数字。但是,不带引号,实际上是将tcp
仅传递给{{1} }参数。
将这一行更改为:
-p
注意:作为一般建议,在Bash中双引号通常更安全。
NB2:您不需要那两个pcapsplitter -f file.pcapng -o destination/$i -m bpf-filter -p "$tcp"
循环。这是我重写脚本的方法:
for