93 votes

Suppression des lignes vides dans un fichier texte via grep

FILE :

hello

world

foo

bar

Comment puis-je supprimer toutes les nouvelles lignes vides dans ce FILE ?

Sortie de la commande :

FILE :

hello
world
foo
bar

145voto

DigitalRoss Points 80400

grep . FILE


(Et si vous voulez vraiment le faire en sed, alors : sed -e /^$/d FILE )

(Et si vous voulez vraiment le faire en awk, alors : awk /./ FILE )

40voto

Mr.Ree Points 5112

Essayez ce qui suit :

grep -v -e '^$'

11voto

ghostdog74 Points 86060
with awk, just check for number of fields. no need regex

$ more file
hello

world

foo

bar

$ awk 'NF' file
hello
world
foo
bar

9voto

Marco Coutinho Points 330

Voici une solution qui supprime toutes les lignes vides ou ne contenant que des caractères d'espacement :

grep -v '^[[:space:]]*$' foo.txt

3voto

kenorb Points 2464

Si la suppression des lignes vides signifie des lignes comprenant des espaces quelconques, utilisez :

grep '\S' FILE

Par exemple :

$  printf "line1\n\nline2\n \nline3\n\t\nline4\n" > FILE
$  cat -v FILE
line1

line2

line3

line4
$  grep '\S' FILE
line1
line2
line3
line4
$  grep . FILE
line1
line2

line3

line4

Voir aussi :

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