Supprimer des caractères semblables consécutifs
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
-
ContributeurSalut,
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. -
Contributeur@S-KillerTu t'embêtes pour rien ;-\
Voilà un fichier de 9 lignes avec 6 lignes contenant du texte et 3 lignes vides.$ cat plop
ligne 1
ligne 3
ligne 4
ligne 5
ligne 7
ligne 9
$ grep -c '.' plop
6
$ grep -c '^$' plop
3 -
-
Contributeur@S-KillerPour 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 -
-
-
Modérateur.. et est-ce bien sous Linux ?