Supprimer des caractères semblables consécutifs
S-Killer
-
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je n'arrive pas à trouver comment supprimer deux caractères semblables successifs sur une ligne et comment compter le nombre de lignes vides et non vides dans un fichier .
je n'arrive pas à trouver comment supprimer deux caractères semblables successifs sur une ligne et comment compter le nombre de lignes vides et non vides dans un fichier .
2 réponses
-
Salut,
Qu'as-tu essayé ? Avec quelles commandes ?
-
J'ai essayé avec awk pour compter le nombre de lignes mais le problème que je rencontre est qu'apparemment, le contenu de la variable que j'utilise pour l'incrémentation se vide à chaque fois que awk passe à la ligne suivante. voici ce que j'ai essayé
awk -v vid=0 -v nonv=0 'BEGIN {if($0="") {vid++} else {nonv++}} END {print vid nonv}' passwd
où nonv: représente le nombre de lignes non vides à la sortie et
vid: le nombre de lignes vides. -
-
-
Pour awk, il te faut l'écrire comme ça :
awk -v vid=0 -v nonv=0 '{if($0=="") vid++ ;else nonv++ ;} END {print "vide = " vid, "non vide = " nonv}'
Pour sed, ce n'est pas bon, par ce que là tu supprimes la ligne entière ;-(
Après il faut savoir s'il faut tenir compte du fait qu'il n'y ait qu'un seul caractère répété ou s'il peut il y en avoir plusieurs à la suite ? Un exemple :$ echo "a b c dd effg hhiiijj" | sed 's/\(.\)\1*/\1/g'
a b c d efg hij -
-
-