重排wireshark .cap文件

问题描述 投票:1回答:1

我有很多.cap wirehark文件要根据它们的时间戳进行重新排序。

我已经在Linux终端上使用reordercap inputfilename.cap outputfilename.cap命令。在这里,我必须手动对文件进行一次重新排序。

我如何重新排序文件夹中的一组.cap文件,以便仅通过给文件夹名称指定该文件夹中的所有.cap文件即可重新排序,并且输出文件名也将自动分配(例如,相同的输入文件名称和数字2附加到名称的末尾-例如,如果输入文件名是aaa.cap,则输出文件名可能是aaa2.cap)?

谢谢

python linux wireshark
1个回答
0
投票

这应该可以解决问题:


TARGET_DIR="./wirecap"

ls -lrt $TARGET_DIR/*.cap > ./temp

DASH="-"

# state of the directory before any changes
echo before any changes
echo
ls -lrt $TARGET_DIR
echo

# for each file , find where number they are in timestamp
#   and then rename each file in format previousname-order
for filename in $TARGET_DIR/*.cap; do
  SHORTFILENAME="${filename##*/}"
  ORDER=`grep -nw  $SHORTFILENAME ./temp | cut -d: -f1`
  mv $TARGET_DIR/$SHORTFILENAME $TARGET_DIR/$SHORTFILENAME$DASH$ORDER
done

#new state of the directory
echo after the changes
ls -l $TARGET_DIR

#cleanup
rm ./temp

示例运行:

mamuns-mac:~ xmrashid$ ./do.sh
before any changes

total 0
-rw-r--r--  1 foo  1951595366  0 Apr  8 16:26 k.cap
-rw-r--r--  1 foo  1951595366  0 Apr  8 16:26 j.cap
-rw-r--r--  1 foo  1951595366  0 Apr  8 16:26 ky.cap
-rw-r--r--  1 foo  1951595366  0 Apr  8 16:26 ty.cap
-rw-r--r--  1 foo  1951595366  0 Apr  8 16:26 abc.cap

after the changes
total 0
-rw-r--r--  1 foo  1951595366  0 Apr  8 16:26 abc.cap-5
-rw-r--r--  1 foo  1951595366  0 Apr  8 16:26 j.cap-2
-rw-r--r--  1 foo  1951595366  0 Apr  8 16:26 k.cap-1
-rw-r--r--  1 foo  1951595366  0 Apr  8 16:26 ky.cap-3
-rw-r--r--  1 foo  1951595366  0 Apr  8 16:26 ty.cap-4
© www.soinside.com 2019 - 2024. All rights reserved.