GNU/Linux >> Tutoriels Linux >  >> Linux

Supprimer les lignes vides à l'aide de sed

Vous pouvez avoir des espaces ou des tabulations dans votre ligne "vide". Utiliser les classes POSIX avec sed pour supprimer toutes les lignes contenant uniquement des espaces :

sed '/^[[:space:]]*$/d'

Une version plus courte qui utilise ERE, par exemple avec gnu sed :

sed -r '/^\s*$/d'

(Notez que sed ne fait PAS soutenir PCRE.)


Il me manque le awk solution :

awk 'NF' file

Ce qui renverrait :

xxxxxx
yyyyyy
zzzzzz

Comment cela marche-t-il? Depuis le NF signifie "nombre de champs", ces lignes étant vides ont 0 champs, de sorte que awk évalue 0 à False et aucune ligne n'est imprimée ; cependant, s'il y a au moins un champ, l'évaluation est True et fait awk effectuer son action par défaut :imprimer la ligne courante.


  • '/^[[:space:]]*$/d'
  • '/^\s*$/d'
  • '/^$/d'
  • -n '/^\s*$/!p'

grep

  • .
  • -v '^$'
  • -v '^\s*$'
  • -v '^[[:space:]]*$'

mauvais

  • /./
  • 'NF'
  • 'length'
  • '/^[ \t]*$/ {next;} {print}'
  • '!/^[ \t]*$/'

sed '/^$/d' devrait être bon, comptez-vous modifier le fichier en place ? Si c'est le cas, vous devez utiliser le -i drapeau.

Peut-être que ces lignes ne sont pas vides, donc si c'est le cas, regardez cette question Supprimer les lignes vides des fichiers txt, supprimer les espaces au début et à la fin de la ligne Je pense que c'est ce que vous essayez de réaliser.


Linux
  1. Remplacer un mot ou un nombre dans une phrase inférieure à 8 en utilisant Awk ou Sed ?

  2. Comment supprimer plusieurs lignes aléatoires d'un fichier texte à l'aide de Sed ?

  3. Utiliser Word Wrap avec Mc ?

  4. Comment supprimer les N premières lignes d'un fichier Ascii à l'aide des commandes Shell ?

  5. Majuscule première lettre de mots à l'aide de SED

Comment supprimer des lignes dans Vim / Vi

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

Comment supprimer des lignes vides dans des fichiers à l'aide de Grep, Sed et Awk

Tutoriel Unix Sed :Supprimer des lignes de fichier à l'aide d'adresses et de modèles

Comment modifier un fichier sur place en utilisant awk ? (comme avec sed -i)

Remplacement SED sur plusieurs lignes