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 20/02/2017, à 17:51

Numalemanu

Pb avec sed pour supprimer les lignes d'un fichier

Bonjour à tous!

Sur mon syslog j'ai un fichier de 45Go de logs.
Quand je passe la commande
grep -i toto logs >  resultat
Le fichier resultat fait 14Go. J'aimerai bien débarrasser le fichier logs des lignes qui ont été recopiées dans le fichier resultat.
Alors j'ai tenté le coup avec la commande
sed -i".bak" '/toto/d' logs
Le fichier de sauvegarde logs.bak est bien créé, mais le fichier logs dans lequel je devrais retrouver les lignes du fichier logs moins les lignes contenant toto (si j'ai bien compris) ne fait que 224Mo.
Quand je regarde dans le fichier, on dirait qu'il s'arrête en plein boulot: pas de trace de toto dans le fichier.
Pourquoi?

Merci pour vos réponses rapides, précises et claires ;o)

Dernière modification par Numalemanu (Le 20/02/2017, à 17:53)

Hors ligne

#2 Le 20/02/2017, à 23:06

oliv77

Re : Pb avec sed pour supprimer les lignes d'un fichier

Bonne idée de faire une copie du fichier dans une version .bak. En ce que concerne le fait de débarrasser le fichier logs des lignes contenant toto je propose :
sed -i '/toto/d' logs

Par exemple, pour supprimer toutes les lignes contenant le mot Configuration des fichiers *.log du répertoire courant de ma machine je fais : sed -i '/Configuration/d' *.log

Hors ligne