Bash caractères doubles
Résolu/Fermé
                                    
                        Jeremyprog                    
                                    -
                                     
Jeremyprog -
        Jeremyprog -
        Bonjour, 
J'ai un fichier texte qui contient :
Je voudrais supprimer toutes les lignes qui contiennent strictement plus de 2 chiffres (distincts) dupliqués, comme par exemple
Je veux garder cells qui contiennent au plus deux chiffres dupliqués, comme par exemple
J'essaie avec
                
            
                
    
    
    
        J'ai un fichier texte qui contient :
00112233
01234567
11234556
Je voudrais supprimer toutes les lignes qui contiennent strictement plus de 2 chiffres (distincts) dupliqués, comme par exemple
00112233.
Je veux garder cells qui contiennent au plus deux chiffres dupliqués, comme par exemple
11234556
J'essaie avec
awket
sedmais je n'arrive pas à ce que je voudrais :(
        A voir également:         
- Bash caractères doubles
- Caractères spéciaux - Guide
- Caractères ascii - Guide
- Caracteres speciaux - Guide
- Caractères spéciaux mac - Guide
- Bingo bash free - Télécharger - Divers Jeux
4 réponses
                        
                    à tester sur plus de données
    
                $ cat fichier
900112233
00112233
01234567
11234556
$
$ awk -F "" '$1!=$2 || $3!=$4 {print $0}' fichier
900112233
01234567
11234556
                        
                    un probleme proche avait été posé
https://forums.commentcamarche.net/forum/affich-37411007-recherche-avec-grep#3
    
                https://forums.commentcamarche.net/forum/affich-37411007-recherche-avec-grep#3
                        
                    Bonjour, excuse-moi j'ai une question,
Comment puis-je supprimer toutes les lignes qui commencent par un double dans un fichier texte, s'il te plaît ?
    
                Comment puis-je supprimer toutes les lignes qui commencent par un double dans un fichier texte, s'il te plaît ?
    Dans l'absolu, c'est une nouvelle question qui n'a rien à avoir avec le problème initial donc tu devrais la poser dans un nouveau fil de discussion. Le plus simple dans ton cas est de faire un filtre basé sur une expression régulière, par exemple à l'aide de 
Exemple :
Bonne chance
    egrep
- Si tu parles d'un double au sens nombre flottant (par exemple -1.23 ou +4.56 ou 78.90 ou n'importe quelle valeur entière (signée ou non signée)), cela s'écrit :
egrep -v "^(-|[+])?[0-9]+([.][0-9]+)?" fichier
Exemple :
(mando@silk) (~) $ cat fichier
1.23 abc
-4.56 def
ghi 1.23
klm opq
(mando@silk) (~) $ egrep -v "^(-|[+])?[0-9]+([.][0-9]+)?" fichier
ghi 1.23
klm opq
- Si tu parles d'un chiffre dupliqué il faut simplement adapter le filtre. Si j'ai bien compris cela revient à supprimer les lignes qui commencent par 11, 22, 33 ... 99, ou 00. Le filtre devient :
egrep -v "^(00|11|22|33|44|55|66|77|88|99|00)" fichier
Bonne chance
 
    
    
    
    
Tu es impressionnant, à chaque question que je pose tu me trouve les solutions.
Vraiment un très grand MERCI à toi