Supprimer des caractères semblables consécutifs

S-Killer -  
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 .

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Qu'as-tu essayé ? Avec quelles commandes ?
    0
    1. S-Killer
       
      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.
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > S-Killer
       
      Tu 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
      0
    3. S-Killer
       
      Donc le programme que j'ai posté tout à l'heure ne marche pas?
      pour la suppression des caractères successifs voilà ce que j'ai essayé
      sed -e ".{,2}d" mon_fichier
      0
    4. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > S-Killer
       
      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
      0
    5. S-Killer
       
      Merci vraiment de m'avoir accordé ton temps!!!
      0
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    .. et est-ce bien sous Linux ?
    0
    1. S-Killer
       
      Oui c'est sous linux ubuntu 10
      0