Supprimer les lignes vides d'un fichier texte via grep
FILE
:
hello
world
foo
bar
Comment puis au moment de le retirer tous les vides, de nouvelles lignes dans cette FILE
?
Sortie de commande:
FILE
:
hello
world
foo
bar
- Double Possible de Supprimer les lignes vides à l'aide de SED
Vous devez vous connecter pour publier un commentaire.
grep . FILE
(Et si vous voulez vraiment faire de sed, puis:
sed -e /^$/d FILE
)(Et si vous voulez vraiment faire dans awk, puis:
awk /./FILE
)sed -ne/./p
travaille trop, etawk /./
est plus courte (de l'action est{print}
si spécifié). @ghostdog74:grep '[^[:space:]]'
ensuite..
est une expression régulière qui correspond à tout caractère sauf pour le saut de ligne.grep . FILE
travaille avec l'exemple donné, mais pas nécessairement quand le fichier peut avoir octets ne fait pas partie du jeu de caractères. Par exemple, avec GNU grep 2.20,printf "\x80\n" | grep .
sorties de rien.grep .
par rapport aux autres solutions, c'est qu'il va sélectionner tout le texte en rouge. Les autres solutions peuvent préserver les couleurs d'origine. Comparerunbuffer apt search foo | grep .
àunbuffer apt search foo | grep -v ^$
Essayez ce qui suit:
grep -v -e '^$'
fonctionne toujours, ce qui n'est pas le cas degrep .
. Par exemple, avec GNU grep 2.20,printf "\x80\n" | grep .
sorties de rien, tout enprintf "\x80\n" | grep -v '^$'
sorties de la ligne non vide.-e
option n'est pas nécessaire. Pour les expressions régulières étendues-E
option est nécessaire.awk1line.txt
-- puis, de nouveau, de sorte que la plupart des awk astuces 🙂Voici une solution qui supprime toutes les lignes qui sont vides ou contiennent uniquement des caractères d'espace:
grep '[^[:space:]]' foo.txt
Essayez ceci:
sed -i '/^[ \t]*$/d' file-name
Il va supprimer toutes les lignes vides avoir aucune. des espaces blancs (espaces ou des tabulations), c (0 ou plus) dans le fichier.
Remarque: il y a un 'espace' suivi d'un '\t' à l'intérieur du crochet.
Le modificateur
-i
force d'écrire le contenu mis à jour dans le fichier. Sans ce drapeau, vous pouvez voir les lignes vides ont été supprimés sur l'écran, mais le fichier ne sera pas affectée.grep '^..' my_file
exemple
il donne comme sortie uniquement lignes avec au moins 2 caractères.
Voir aussi les résultats avec
grep '^' my_file
sortieset aussi avec
grep '^.' my_file
sortiesEssayer ex: la
Pour plusieurs fichiers (modifier sur place):
Sans modifier le fichier (il suffit d'imprimer sur la sortie standard):
Perl peut-être exagéré, mais il fonctionne tout aussi bien.
Supprime toutes les lignes qui sont complètement vides:
Supprime toutes les lignes qui sont complètement vide, ou ne contiennent que des espaces blancs:
Variation qui modifie l'original et fait un .bak fichier:
Si la suppression des lignes vides signifie que les lignes y compris les espaces, utilisation:
Par exemple:
Voir aussi:
sed
: Supprimer les lignes vides à l'aide de sedawk
: Supprimer les lignes vides à l'aide de awk