#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