AWK supprime les lignes vides
La /./
est la suppression des lignes vides pour la première condition { print "a"$0 }
seulement, comment pourrais-je assurer que le script supprime les lignes vides pour chaque état ?
awk -F, '/./{ print "a"$0 } NR!=1 { print "b"$0 } { print "c"$0 } END { print "d"$0 }' MyFile
source d'informationauteur general exception
Vous devez vous connecter pour publier un commentaire.
Mettre des conditions suivantes à l'intérieur de la première, et de les vérifier avec
if
états, comme ceci:Awk commande pour supprimer les lignes vides d'un fichier:
Une forme courte de la déjà proposé la réponse pourrait être la suivante:
Tout
awk
script suit la syntaxecondition {statement}
. Si le bloc n'est pas présent,awk
permettra d'imprimer l'ensemble de l'enregistrement (ligne) dans le cas où lecondition
n'est pas zéro.NF
variable dansawk
détient le nombre de champs dans la ligne. Ainsi, lorsque la ligne est non vide,NF
détient une valeur positive qui déclenchent la valeur par défautawk
action (imprimer l'ensemble de la ligne). En cas de vide de ligne,NF
est nulle et que la condition n'est pas remplie, de sorteawk
ne fait rien.ou
^$
est la regex pour une ligne vide. Le 2/
est nécessaire de laisserawk
comprendre la chaîne de caractères est une expression régulière.!
est la norme de la négation.si vous souhaitez ignorer toutes les lignes vides, de mettre cela au début du script