407 votes

Supprimer les lignes vides à l'aide de SED

J'essaie de supprimer les lignes vides en utilisant sed

 sed '/^$/d'
 

mais je n'ai pas de chance avec ça. par exemple j'ai ces lignes:

 xxxxxx


yyyyyy


zzzzzz
 

et je veux que ce soit comme:

 xxxxxx
yyyyyy
zzzzzz
 

Quel devrait être le code pour cela?

701voto

Kent Points 71470

vous pouvez avoir un espace / des onglets dans votre ligne "vide" essayez ceci, voyez si cela aide:

 sed '/^\s*$/d'
 

69voto

Alberto Zaccagni Points 11478

sed '/^$/d' devrait être correct, prévoyez-vous de modifier le fichier en place? Si c'est le cas, vous devriez utiliser le drapeau -i .

Peut-être que ces lignes ne sont pas vides, alors si c'est le cas, examinez cette question. Supprimez les lignes vides des fichiers txt, supprimez les espaces du début et de la fin de la ligne. Je crois que c'est ce que vous essayez d'atteindre.

33voto

Vadim Points 235

Je crois que c'est le plus facile et le plus rapide:

 cat file.txt | grep .
 

Si vous devez également ignorer toutes les lignes d'espaces, essayez ceci:

 cat file.txt | grep '\S'
 

Exemple:

 s="\
\
a\
 b\
\
Below is TAB:\
    \
Below is space:\
 \
c\
\
"; echo "$s" | grep . | wc -l; echo "$s" | grep '\S' | wc -l
 

les sorties

 7
5
 

15voto

ConMan Points 191

Avec l'aide de la réponse acceptée ici et de la réponse acceptée ci-dessus, j'ai utilisé:

 $ sed 's/^ *//; s/ *$//; /^$/d; /^\s*$/d' file.txt > output.txt

`s/^ *//`  => left trim
`s/ *$//`  => right trim
`/^$/d`    => remove empty line
`/^\s*$/d` => delete lines which may contain white space
 

Cela couvre toutes les bases et fonctionne parfaitement pour mes besoins. Bravo aux affiches originales @Kent et @kev

5voto

tank Points 28

vous pouvez simplement entrer:

sed -n '/ / p' nomfichier #l'espace entre '//'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X