[grep] Recherche 1er/dernier caractère égaux
Résolu
Monta^^
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
Monta^^ Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Monta^^ Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche une commande qui permet d afficher les ligne d un fichier qui commencent et finissent par le meme caracteres!! oO
j ai fais cette combinaison, mais ca marche pas !:
grep -i "."^*"$" fichier
Merci pour votre aide
je cherche une commande qui permet d afficher les ligne d un fichier qui commencent et finissent par le meme caracteres!! oO
j ai fais cette combinaison, mais ca marche pas !:
grep -i "."^*"$" fichier
Merci pour votre aide
A voir également:
- Grep caractère spéciaux
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere speciaux mac - Guide
- Caractère ascii - Guide
- Caractere vide - Guide
5 réponses
Salut,
Il faut utiliser les références arrières qui ne sont pas disponibles dans les versions anciennes de grep.
A utiliser l'option -E pour grep étendu
En gras j'ai mis les caractères (sans différencier la casse) qui correspondent
^ - signifie que je force la regex commencer au début de la ligne (ancrage début ligne)
$ - signifie que je force la regex de faire correspondre avec le dernier caractère de la ligne (ancrage fin ligne)
\1 - rérérence arrière qui connaîtra le même caractère capturé par les parenthèses ()
Il faut utiliser les références arrières qui ne sont pas disponibles dans les versions anciennes de grep.
A utiliser l'option -E pour grep étendu
En gras j'ai mis les caractères (sans différencier la casse) qui correspondent
^ - signifie que je force la regex commencer au début de la ligne (ancrage début ligne)
$ - signifie que je force la regex de faire correspondre avec le dernier caractère de la ligne (ancrage fin ligne)
\1 - rérérence arrière qui connaîtra le même caractère capturé par les parenthèses ()
lami20j@debian:~/trash$ cat monta adsjfkldsjkflsda ojdsfljdslO bdjdklfjdls Adsklfkljdsfa BsdjfsdBsdf cdskdkfjl Zsddsfjdslz lami20j@debian:~/trash$ grep -Ei '^([a-z]).*\1$' monta adsjfkldsjkflsda ojdsfljdslO Adsklfkljdsfa Zsddsfjdslz
Salut Monta,
A priori je partirai plus sur un awk. Je suis sous windows là donc je peux pas tester mais grosso modo :
awk {deb=substr(0,1);fin=substr(longueur_chaine-1, longueur_chaine)} {if (deb = fin) {print $0}}
Il doit y avoir plein d'erreurs de syntaxe mais je pense pas en être très loin.
bon courage tiens nous au courant si tu trouves.
PS : si personne n'a la réponse d'ici lundi je regarderai du boulot :-)
A priori je partirai plus sur un awk. Je suis sous windows là donc je peux pas tester mais grosso modo :
awk {deb=substr(0,1);fin=substr(longueur_chaine-1, longueur_chaine)} {if (deb = fin) {print $0}}
Il doit y avoir plein d'erreurs de syntaxe mais je pense pas en être très loin.
bon courage tiens nous au courant si tu trouves.
PS : si personne n'a la réponse d'ici lundi je regarderai du boulot :-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question