#1 Le 31/08/2020, à 10:22
- philoeil
[RESOLU] grep recherche TAB tuto incompris
Bonjour,
sur ce site Docstore cours sed awk j'ai lu l'information suivante :
En anglais :
3.2.7 Positional Metacharacters There are two metacharacters that allow you to specify the context in which a string appears, either at the beginning of a line or at the end of a line.
The circumflex ( ^ ) metacharacter is a single-character regular expression indicating the beginning of a line.
The dollar sign ( $ ) metacharacter is a single-character regular expression indicating the end of a line. These are often referred to as "anchors," since they anchor, or restrict, the match to a specific position.
You could print lines that begin with a tab: ^·
(The · represents a literal tab character, which is normally invisible.)
Without the ^ metacharacter, this expression would print any line containing a tab.
Traduit en Français :
3.2.7 Métacaractères positionnels Il existe deux métacaractères qui vous permettent de spécifier le contexte dans lequel une chaîne apparaît, soit au début d'une ligne, soit à la fin d'une ligne.
Le métacaractère circonflexe ( ^ ) est une expression régulière à un seul caractère indiquant le début d'une ligne.
Le métacaractère signe dollar ( $ ) est une expression régulière à un seul caractère indiquant la fin d'une ligne. Celles-ci sont souvent appelées «ancres», car elles ancrent ou limitent la correspondance à une position spécifique.
Vous pouvez imprimer des lignes commençant par un tab: ^·
(Le ·représente un caractère de tabulation littéral, qui est normalement invisible.)
Sans le métacaractère ^, cette expression afficherait n'importe quelle ligne contenant une tabulation.
Je ne comprends pas ce qu'est ce point après le ^
Je n'arrive ni à le reproduire ni à trouver une commande équivalente pour trouver les lignes avec un TAB en début de ligne :
Mon fichier exemple :
phil@phil-G750JH:~/Documents/JeCodeShell/ApprendreGREP$ cat CherchLivre
Voici les livres que vous avez demandés
Oui, c'est un bon livre pour les enfants
Il est étonnant de penser qu'il a été qualifié de "livre nuisible" quand
une fois arrivé à la fin du livre, tu ne peux pas croire
Ligne avec 1 tab en debut de ligne
Ligne avec espace en fin de ligne
ligne suivante
phil@phil-G750JH:~/Documents/JeCodeShell/ApprendreGREP$
mon essai echec :
phil@phil-G750JH:~/Documents/JeCodeShell/ApprendreGREP$ grep "^." CherchLivre
Voici les livres que vous avez demandés
Oui, c'est un bon livre pour les enfants
Il est étonnant de penser qu'il a été qualifié de "livre nuisible" quand
une fois arrivé à la fin du livre, tu ne peux pas croire
Ligne avec 1 tab en debut de ligne
Ligne avec espace en fin de ligne
ligne suivante
phil@phil-G750JH:~/Documents/JeCodeShell/ApprendreGREP$
Merci pour vos aides
Dernière modification par philoeil (Le 31/08/2020, à 16:57)
Hors ligne
#2 Le 31/08/2020, à 10:30
- pingouinux
Re : [RESOLU] grep recherche TAB tuto incompris
Bonjour,
Voici déjà une façon de faire. Je vais regarder ta doc pour comprendre.
grep $'^\t' CherchLivre
Hors ligne
#3 Le 31/08/2020, à 10:33
- sputnick
Re : [RESOLU] grep recherche TAB tuto incompris
Le . est n'importe quel caractère, donc aussi une tab ou un espace.
Pour matcher ce qui commence par un tab, tu peut faire:
grep '^
puis control-v + tab et fermer les guillemets.
T'aura que la ligne avec un tab
Il existe un tunnel obscur dans la lumière infinie. Lao-Tseu
https://sputnick.fr
Hors ligne
#4 Le 31/08/2020, à 10:47
- pingouinux
Re : [RESOLU] grep recherche TAB tuto incompris
J'ai regardé la doc à laquelle tu fais référence en #1.
Ils utilisent des caractères bizarres pour figurer les caractères invisibles, comme espaces ou tabulations.
Ce n'est pas clair du tout.
Pour la tabulation, ce n'est pas le point qu'ils utlisent, mais celui-ci
· => <U00B7> /xc2/xb7 MIDDLE DOT
La méthode indiquée par sputnick (en #3), ou la mienne (en #2), devrait faire ce que tu veux.
Hors ligne
#5 Le 31/08/2020, à 11:24
- Watael
Re : [RESOLU] grep recherche TAB tuto incompris
je crois que le point, c'est seulement la fin de la phrase du tuto :
[...]çant par un tab: ^·
point : fin de la phrase, et du paragraphe.
[...]actère ^, cet[...]
ici non plus, la virgule ne fait pas partie d'une regex.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 31/08/2020, à 14:11
- philoeil
Re : [RESOLU] grep recherche TAB tuto incompris
Bonjour,
Merci à Watael pour sa participation
Merci Pingouinux et Sputnick vos 2 solutions marchent bien.
Je n'ai pas compris ce que veut dire :
· => <U00B7> /xc2/xb7 MIDDLE DOT
Peut-on rentrer ce "point" dans la recherche grep ?
Hors ligne
#7 Le 31/08/2020, à 14:36
- pingouinux
Re : [RESOLU] grep recherche TAB tuto incompris
Je n'ai pas compris ce que veut dire :
· => <U00B7> /xc2/xb7 MIDDLE DOT
Cela représente les encodages unicode et utf8 du caractère en question.
C'était juste pour montrer que dans la documentation, ce n'est pas un point qui apparaît derrière le ^, mais ce caractère "MIDDLE DOT".
Utilise une des deux méthodes que nous t'avons indiquées. Pour moi, la documentation n'est pas claire.
Hors ligne
#8 Le 31/08/2020, à 14:48
- Watael
Re : [RESOLU] grep recherche TAB tuto incompris
forcément, si je lis en diagonale !
le 'middle dot' représente une tabulation qui ne serait pas visible en fin de paragraphe.
si je mets une tabulation, ou un espace ici ->
on ne peut pas les voir, donc le rédacteur à remplacer la tabulation par un "point inclusif" comme ici ->·
je plussoie les #2 et #3. <-là, c'est un point final.
--
« quand le sage montre la lune... »
Dernière modification par Watael (Le 31/08/2020, à 14:49)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 01/09/2020, à 08:20
- philoeil
Re : [RESOLU] grep recherche TAB tuto incompris
Bonjour,
Ok Merci Watael et Pingouinux pour vos réponses
Hors ligne
#10 Le 01/09/2020, à 08:42
- kamaris
Re : [RESOLU] grep recherche TAB tuto incompris
Il y a aussi
grep -P '^\t' CherchLivre
Hors ligne