grep "^$1"sorte de travaux, mais comment puis-je m'échapper "$1"pour que grep n'y interprète aucun caractère spécialement?
Ou existe-t-il une meilleure façon?
Edit:
je ne veux pas rechercher '^$1'mais une chaîne fixe insérée dynamiquement qui ne doit être mise en correspondance que si elle se trouve au début d'une ligne. C'est ce que je voulais dire par $1.
grepmais vous devrez d'abord échapper tout caractère spécial dans votre chaîne, par exempleprintf %s ^;printf %s "$1" | sed 's/[][\.*^$]/\\&/g'; } | grep -f- infile
grep '^$1'? Ou ne vouliez-vous pas dire que vous vouliez empêcher l'$1expansion par le shell?