我有几个文件夹,每个文件夹有 300 到 400 个文件。这些文件是 wireshark 捕获的.pcapng
格式。我想编写一个 shell 脚本,打开每个文件并将其保存到使用 wireshark.tcpdump
格式的新文件夹中。
答案1
好的,找到了名为 的工具editcap
。您只需调用editcap i.pcapng o.pcap
循环即可:
# Recursively convert all *.pcapng files to *.pcap
cd /path/to/folders # the path to folder where your folders containing '*.pcapng' files are in
find . -type f -name '*.pcapng' -print0 | while IFS= read -r -d '' f; do editcap -F libpcap "$f" "${f%.pcapng}.pcap"; done
(因为我很懒,所以除了为 ${f%.pcapng}.pcap 添加双引号外,我主要使用了 Radu 的脚本)
您可以检查editcap 手册以获得更多选项。
下面是一个例子:
braiam@bt:~/lab$ ls
something.pcapng
braiam@bt:~/lab$ find . -type f -name '*.pcapng' -print0 | while IFS= read -r -d '' f; do editcap -F libpcap "$f" "${f%.pcapng}.pcap"; done
braiam@bt:~/lab$ file something.pcap something.pcapng
something.pcap: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 65535)
something.pcapng: pcap-ng capture file - version 1.0
braiam@bt:~/lab$
如你所见,我将 pcapng 格式转换为 pcap/tcpdump 格式。扩展名的更改是额外的。
答案2
您也可以使用 tshark:
tshark -F pcap -r {pcapng_file} -w {pcap_file}