harold50 Posted May 27, 2008 Share Posted May 27, 2008 Bonjour j'ai un fichier dans lequel il y a plein de lignes vides intercalées. je voudrais savoir s'il existe une commande qui va me permettre de supprimer les lignes vides. merci Link to comment Share on other sites More sharing options...
leon47 Posted May 27, 2008 Share Posted May 27, 2008 sed -i '/^$/d' FICHIER :) mais ATTENTION, cela va modifier définitivement ton fichier ... pour valider avant : sed '/^$/d' FICHIER (sans le -i) Link to comment Share on other sites More sharing options...
theocrite Posted May 27, 2008 Share Posted May 27, 2008 Voilà pareil. Sinon grep -vE "^$" FICHIER Ou avec une super feinte : grep '.' FICHIER Et en awk : awk '/./' FICHIER Et enfin une version qui supprime lignes vides ET lignes ne contenant que des caractères d'espacement : grep -Ev "^\s*$" smtp_state.pm (Fonctionne aussi avec sed et awk) Link to comment Share on other sites More sharing options...
harold50 Posted May 27, 2008 Author Share Posted May 27, 2008 Merci à tous les deux ça fonctionne. avez vous un tutoriel simple avec beaucoup d'exemple pour apprendre awk et sed? Link to comment Share on other sites More sharing options...
theocrite Posted May 27, 2008 Share Posted May 27, 2008 Plein d'exemple, oui : http://www.student.northpark.edu/pemente/awk/awk1line.txt http://student.northpark.edu/pemente/sed/sed1line.txt Des tutos pas sous la main. Link to comment Share on other sites More sharing options...
Sandeman Posted May 28, 2008 Share Posted May 28, 2008 juste en passant, si tu as plein de lignes vides qui se suivent des fois par paquet de 2 3 ou plus ... pour aller un poil plus vite tu commence par un coup de "uniq" sur le fichier (ça supprime les lignes identiques redondantes - en supposant qu'il n'y ait que des lignes vides en redondance) uniq ton_fichier.txt | grep -v ^# pour continuer la digression, uniq est pas mal aussi pour alléger des opérations mémoires lourdes si tu as une liste en vrac et que tu veux juste chaque occurence possible, tu fais un "uniq | sort | uniq" ça peut être beaucoup plus rapide qu'un simple "sort | uniq" ... parceque sort n'aura pas à gérer un certain nombre de doublons successifs (utile par exemple quand tu parse des logs et que tu veux la liste des machines ou process qui en émettent, ou la liste des émetteurs de mail, etc.) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.