Pra*_*rma 4 command-line bash scripts
我有几个文件夹,每个文件夹有 300 到 400 个文件。这些文件是.pcapng
格式的wireshark捕获。我想编写一个 shell 脚本,打开每个文件并使用wireshark.tcpdump
格式将其保存到一个新文件夹中。
好的,找到了名为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
Run Code Online (Sandbox Code Playgroud)
(因为我比较懒,除了给${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$
Run Code Online (Sandbox Code Playgroud)
如您所见,我将 pcapng 格式转换为 pcap/tcpdump 格式。扩展名的更改是额外的。