Bash: une ptite question conne

Salut a tous !
En revisant le bash il font dans un exo un script contenant

cat $1 | grep “.a.” | tr “a” “?”

ca affiche ca

??
?v?nt
ensuite ?ujourd’hui
fiest?
?br?c?d?br?

si on le lance avec en parametre un fichier contenant:

aa
avant
apres
ensuite aujourd’hui
fiesta
abracadabra

alors j’ai pas compris …

le cat | grep | tr j’ai compris que c’etait on donne au grep le contenu (pkoi ca l affiche pas ?) qui recherche le motif “.a.” qui donne chaque ligne correspondant au tr qui remplace

mais pkoi “.a.” ? le . (en REG EXP) c comme le meta caractere * mais grep par default ne fait pas de reg expression ???

Edit: en plus si par defaut c’est une REG EXP, pkoi il sort aa ? il compte le retour chariot ?

J’avoue c’est pas une question existencielle mais ca me fout le boule a 2 jours du partiel de pas comprendre :frowning:

COrdialement

ben si, grep utilise les regexp.

Donc, il faut un caractère avant et aprés le a, le aa du début n’est pas sensé sortir, et chez moi il ne sort pas.

edit: mouarf,ça marche pas avec fiesta du coup, en fait ton résultat est plus consistant que le mien (pas le aa, mais fiesta) s’il prend en compte le retour chariot.

edit2: bon, j’avais un espace qui trainais aprés le fiesta, une fois enlevé il n’apparait plus, donc je reconfirme qu’il faut un a avec un caractère avant et aprés.

pareil pour moi c t un c t un espace en trop.
En fait dans un autre cours on utilise -E pour les REG EXP étendues.
Dans le man il parlais pas de REG EXP de base

MErci