#1 Le 14/02/2019, à 08:01
- Phd student
La conversion de plusieurs fichier .pcap en csv
Bonjour,
J'ai un dossier qui contient des milliers de fichiers .pcap, et je veux les convertir en fichiers .csv.
Exemple:
1.pcap -> 1.csv
2.pcap -> 2.csv
3.pcap -> 3.csv
.
.
Et ainsi de suite.
J'ai trouvé un bash script qui fait la conversion de plusieurs pcap vers un seule csv. J'ai essayé de l'est modifié, mais je n'ai pas beaucoup de connaissance concernant les scripts bash.
Le script est le suivant :
*****************************************************************************
#!/bin/bash
cap_files='/home/pc/Desktop/pcapfiles/*.pcap'
outfile='/home/pc/Desktop/outfile.csv'
tshark_cmd='tshark'
tshark_options='-n -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'
for file in $cap_files
do
echo "processing file: $file"
echo "== File: $file" >> $outfile
$tshark_cmd -r $tshark_options >> $outfile
done
*****************************************************************************
P.S: je n'ai pas connaissance concernant les scripts bash, donc je suis sur qu'il y'a beaucoup de fautes.
Merci a l'avance.
Modération : merci d'utiliser les balises code (explications ici).
Dernière modification par cqfd93 (Le 14/02/2019, à 09:01)
Hors ligne
#2 Le 14/02/2019, à 10:26
- kholo
Re : La conversion de plusieurs fichier .pcap en csv
salut,
tes connaissances devraient suffire à adapter ces lignes :
#!/bin/bash
# ----------------------------------------------
# nomlogiciel="${0##/*}"
# FONCTION=""
# VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
#
# ----------------------------------------------
# echo "lancement $nomlogiciel..."
## Adapter ces 2 lignes :
dir_in="/home/machin/PROG/bash/forum tests"
dir_out="/home/machin/PROG/bash/forum tests/out"
## autres exemples :
# dir_in=$HOME/Desktop/
# dir_out=$HOME/Desktop/out
# dir_in=./
# dir_out=./out
# NB : le . pour le dossier courant
## si le dossier de sortie n'existe pas; on le crée
[[ -d "$dir_out" ]] || mkdir -p "$dir_out"
## un fichier log pour voir les erreurs éventuelles même après coup
log="$dir_out/logs.txt"
## si il n'existe pas, on le crée
[[ -f "$log" ]] || > "$log"
## tout ce qui va s'afficher maintenant ira dans le log
exec &>> "$log"
date # ;°)
tshark_cmd='tshark'
tshark_options='-n -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'
## c'est parti !
for file in "${dir_in}"/*.pcap
do
echo "----------------------------------"
## peu probable mais
## on test pour voir si on est bien sur un fichier et qu'il existe
[[ -f "$file" ]] || break
outfile="${file%*.pcap}".csv
echo -e "fichier en entrée : \n$file"
echo -e "fichier en sortie : \n$outfile"
echo "conversion :"
#$tshark_cmd -r $tshark_options > "$outfile"
$tshark_cmd $tshark_options > "$outfile"
done
exit 0
sauf erreurs
tous les fichiers avec l'extension pcap seront convertis et placés dans le dossier de destination
NB : je part du principe que les lignes concernant tshark sont bonnes mais j'ai viré l'option -r qui doit être pour la récursivité
Hors ligne