Open mallek-ahmed opened 1 year ago
GROS_FICHIER="gros_fichier.txt" FICHIER_IDENTIFIANTS="fichier_identifiants.txt" PREFIXE_TEMPORAIRE="fichierpart" TAILLE_MORCEAU="4G" FICHIER_FINAL="fichier_final_filtré.txt" MOTIFS_TEMP="motifs.txt"
awk '{print "^" $0}' $FICHIER_IDENTIFIANTS > $MOTIFS_TEMP
split -C $TAILLE_MORCEAU $GROS_FICHIER $PREFIXE_TEMPORAIRE
for fichier in ${PREFIXE_TEMPORAIRE}*; do echo "Traitement de $fichier ..." grep -F -f $MOTIFS_TEMP $fichier > "${fichier}_filtré" done
cat ${PREFIXE_TEMPORAIRE}*"_filtré" > $FICHIER_FINAL
rm $MOTIFS_TEMP ${PREFIXE_TEMPORAIRE} ${PREFIXE_TEMPORAIRE}"_filtré"
echo "Terminé! Le fichier filtré est: $FICHIER_FINAL"
!/bin/bash
Variables
GROS_FICHIER="gros_fichier.txt" FICHIER_IDENTIFIANTS="fichier_identifiants.txt" PREFIXE_TEMPORAIRE="fichierpart" TAILLE_MORCEAU="4G" FICHIER_FINAL="fichier_final_filtré.txt" MOTIFS_TEMP="motifs.txt"
Préparez les motifs pour grep
awk '{print "^" $0}' $FICHIER_IDENTIFIANTS > $MOTIFS_TEMP
Divisez le gros fichier en morceaux
split -C $TAILLE_MORCEAU $GROS_FICHIER $PREFIXE_TEMPORAIRE
Filtrez chaque morceau
for fichier in ${PREFIXE_TEMPORAIRE}*; do echo "Traitement de $fichier ..." grep -F -f $MOTIFS_TEMP $fichier > "${fichier}_filtré" done
Concaténez tous les fichiers filtrés
cat ${PREFIXE_TEMPORAIRE}*"_filtré" > $FICHIER_FINAL
Nettoyage (optionnel - à commenter si vous voulez garder les fichiers temporaires)
rm $MOTIFS_TEMP ${PREFIXE_TEMPORAIRE} ${PREFIXE_TEMPORAIRE}"_filtré"
echo "Terminé! Le fichier filtré est: $FICHIER_FINAL"