Traitement de fichier en Bash
Résolu/Fermé
A voir également:
- Traitement de fichier en Bash
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
1 réponse
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 juin 2010 à 13:57
23 juin 2010 à 13:57
Salut,
;-))
jp@MDK:~/tmpfs ssh$ cat plop vdg121 421321 54512 fsd 2131ef2sd12 szdz4421 4212 212 Chaine 54215th trybtf2512 54212fhfgb 5212 vg hk4121 254bhj hgj Chaine2 fgdtb 121 121 dsfd dgfchb 121 fdtgd5f4 jp@MDK:~/tmpfs ssh$ sed -n '/Chaine/,/Chaine2/{//d;p}' plop 54215th trybtf2512 54212fhfgb 5212 vg hk4121 254bhj hgj jp@MDK:~/tmpfs ssh$
;-))
23 juin 2010 à 14:03
24 juin 2010 à 08:52
Merci
24 juin 2010 à 10:51
Affichage conditionné. On affiche le résultat que sur demande avec le flag "p" (voir plus loin)
/Chaine/,/Chaine2/
Recherche des lignes comprises entre "/motif1/" et "/motif2/", y compris les motifs.
{
Regroupement de commandes (entre accolades) devant s'appliquer à la recherche.
//d
Les "//" représentent la mise en correspondance précédente d'une chaîne de caractères, autrement dit dans ton cas, elles représentes successivement "/Chaine/" et "/Chaine2/", auxquelles on applique la commande "d" (delete), afin de satisfaire à la condition initiale
p
On affiche les motifs correspondants aux critères...
}
Fin du regroupement de commandes.
Pour ta 2è question, si la clé est montée, il suffit soit de donner le chemin complet vers le fichier, soit de se rendre dans le dossier (cd /chemin/clé/répertoire) et de lancer la commande ensuite...
24 juin 2010 à 11:12
24 juin 2010 à 13:16
if [ "$1" = "telechargement" ]; then
cd /usb/$1/
mv "/var/log/$1/$2."* "/usb/$1/"
mv "/usb/$1/$2" "/usb/$1/$1-$port-$nom_fich.txt"
cd /usb/$1/$1-$port-$nom_fich.txt
sed -n "/P18/,/C04/{//d;p}" "$1-$port-$nom_fich.txt" >> $1-$port-$nom_fich.txt.reca
tar -czf "sauvegarde/$1-$port-$nom_fich.tar.gz" "$1-$port-$nom_fich.txt" "$1-$port-$nom_fich.txt.reca" "$2."*
rm "$1-$port-$nom_fich.txt" "$1-$port-$nom_fich.txt.reca" "$2."*
fi
}
Merci de ton aide. Ce que je voudrais c'est récupérer des données qui se trouvent dans $1-$port-$nom_fich.txt, en faire un fichier a part, et ensuite compresser le tout dans un dossier.