Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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  roll
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