#1 Le 08/06/2017, à 13:49
- Hackedia
[Résolu] regex avec grep -ce
Bonjour !
J'ai un fichier de log qui sépare les informations par des lignes contenant des tirets :
----------------------------------------------
information11
----------------------------------------------
information21
information22
information23
----------------------------------------------
information 31
information 32
----------------------------------------------
J'essaye donc de compter le nombre de sections délimité par cette suite de tiret "----------------------------------------------"
J'essaye d'avoir un code propre, donc je dois faire du regex, et j'utilise grep pour traiter mon fichier ligne par ligne, et compter les match avec l'option -c.
Alors j'ai fait les tests suivants sur le fichier :
[root@serveur]# grep -ce '^-*' fichier.log
7
Théoriquement il compte les lignes qui commencent par un tiret et les lignes vides.
Ici le regex marche parfaitement.
[root@serveur]# grep -ce '^-+' fichier.log
0
Thechniquement la commande devrait faire la même chose qu'avant sans compter les lignes vides, c'est l'intérêt d'utiliser + à la place de *, pourtant ça ne match rien.
[root@serveur]# grep -ce '^-{15}' fichier.log
0
Ici si j'ai bien compris ça devrait compter les lignes qui commencent par au moins 15 tiret non ? Parce que ça ne match rien non plus.
Est-ce que quelqu'un saurait m’aiguiller par hasard ?
Dernière modification par Hackedia (Le 08/06/2017, à 14:55)
Hors ligne
#2 Le 08/06/2017, à 14:34
- bruno
Re : [Résolu] regex avec grep -ce
man grep avec -E ou utiliser egrep
grep -E '^-*' fichier.log
grep -E '^-+' fichier.log
grep -E '^-{15}' fichier.log
#3 Le 08/06/2017, à 14:39
- Hackedia
Re : [Résolu] regex avec grep -ce
Ah mince je ne sais plus lire !
Qu'est ce qu'on va bien pouvoir faire de moi !
Merci beaucoup !
Hors ligne
#4 Le 08/06/2017, à 15:20
- bruno
Re : [Résolu] regex avec grep -ce
je pense que tu n'es pas le seul a se faire avoir avec la subtilité entre -e et -E