J´ai écrit un truc qui détaillait avant mais je me suis aperçu qu´on pouvait faire avec ENCORE PLUS de caractères illisibles, et j´ai désormais pas envie de faire un long discours là dessus
Soient tes résultats (ceux de la commande ´cal´) dans un fichier ´temp´.
De deux choses l´une : ou bien le jour numéro 2 ne tombe pas un dimanche, donc il est en semaine, donc il est entouré d´espaces blancs (comme dans ´ 2 3 4 5 6 7 8´, renvoyé chez moi parce que je sais pas pourquoi, mon ´cal´ commence par dimanche
) et dans ce cas il suffit de faire grep ´ 2 ´ temp
Ou bien il tombe chez toi un Dimanche, chez moi un Samedi, et est donc en fin de ligne, dans quel cas il est précédé d´un espace et suivi d´une fin de ligne, qu´on représente ici par le caractère $ (d´où grep ´ 2$´)
Si jamais on cherche ´ 2 ´ et que grep ne le trouve pas, alors la commande renvoie une valeur qu´on appelera ´faux´ en logique. En logique toujours, on peut inverser cette valeur de "faux" pour avoir une "vraie". En bash, ça se traduit par un ! devant la commande entourée de parenthèses :
! (grep ´ 2 ´ temp)
Or si la commande renvoie "faux", alors l´inverse de la commande est "vraie", et on peut donc utiliser l´opérateur logique "et", traduit en bash par "&&". La commande finale :
! (grep ´ 2 ´ temp) && grep ´ 2$´ temp
Tu n´as rien compris ? Bah c´est normal.