我有一个包含数千个.pcap文件的文件夹,我想将这些文件转换为.csv(例如:1.pcap - > 1.csv,2.pcap - > 2.csv,...)。
我写了这个bash脚本:
#!/bin/bash
for f in /home/pc/Desktop/pcapfiles/*.pcap; do
tshark -r ./"$f" -T fields -e frame.number -e frame.time -e ip.src -e ip.dst -e ip.proto -e frame.len -E header=y -E separator=, -E quote=d -E occurrence=f> ./"${f%.pcap}.csv"
done
P.S:我试图用批处理脚本完成这个任务(我已经发布了这个问题,但它不适用于我,所以我决定尝试使用bash脚本或shell脚本。我将非常感谢你的帮助。
您应该删除最后5个字符以删除.pcap
扩展名并添加csv
#!/bin/bash
for f in /home/pc/Desktop/pcapfiles/*.pcap; do
tshark -r ./"$f" -T fields -e frame.number -e frame.time -e ip.src -e ip.dst -e ip.proto -e frame.len -E header=y -E separator=, -E quote=d -E occurrence=f > ./"{$f::-5}".csv"
done
您的脚本的问题是您使用完整的绝对路径循环遍历文件列表,然后尝试写入与当前目录的子目录序列相同的路径。
您将需要从每个文件名中删除路径。你可以用basename
或参数替换来做到这一点,有点类似于你已经修剪.csv
扩展。
即便如此,你也不能使用qazxsw poi来引用qazxsw poi,因为这意味着./"$f"
等。
"$f"