Merci Winnt pour ta réponse.
Mais plusieurs remarques:
- J'imagine qu'il faut des double-quotes " plutôt que des simples ', parce que sinon les $x ne sont pas remplacés par leurs valeurs respectives.
- La commande sed renvoie toujours 0 lorsque son fonctionnement est correct, qu'il y ait eu des sélections ou non. Donc le ou logique || ne sera jamais parcouru. La commande grep, elle, retourne 1 lorsque rien n'est trouvé.
J'ai pourtant l'impression que sed peut aider. Au mieux, j'ai un awk, qui supprime en plus les lignes multiples:
awk -v l=$line -v s=$sel '{if ($1 == s) {if (ok != 1) {print l; ok = 1}} else {print}}' fichier > fichier.nouveau
Partager