À la règle 10 explicitée à la section , nous avions préciser que la première ligne d'un script devait spécifier le nom de l'exécutable associé au shell utiliser.
Nous avons vu de même, que les commandes « egrep » et « fgrep » disposent de l'option « -f », permettant de préciser un fichier de requêtes de recherche.
Si l'analogie est faite avec le shell, le processus chargé d'évaluer chaque ligne du fichier est l'exécutable spécifié au niveau de la première ligne du fichier contenant les instructions. Par conséquent si le fichier contenant les requêtes de recherche :
#!/usr/bin/egrep
» ou
« #!/usr/bin/fgrep
»13.3,
Si nous prenons tout d'abord l'exemple de « egrep », l'exemple suivant permet de rechercher, sur l'entrée standard (ou bien dans la liste de fichiers spécifiée en argument), toutes les lignes satisfaisant les expressions régulières suivantes :
^[A-Z]
», c'est-à-dire tout ligne commençant par une lettre majuscule,
[0-9]$
», c'est-à-dire toute ligne se terminant par un chiffre,
#!/usr/bin/egrep ^[A-Z] [0-9]$
Le résultat affiché seront toutes les lignes satisfaisant au moins l'un des deux critères. Si cet exemple est enregistré dans le fichier « localise », et que celui-ci est accessible en exécution, il suffira de taper la commande suivante pour obtenir le résultat escompté :
localise fichierou bien, si la commande est utilisée comme un filtre :![]()
commande_envoyant_sur_la_sortie_standard| localise
fichier![]()
Le principe d'utilisation pour la commande « fgrep » reste identique à la restriction près que « fgrep » recherche des chaînes sans aucune interprétation des expressions spécifiées dans le fichier. Par conséquent, si nous avons :
#!/usr/bin/fgrep ^[A-Z] [0-9]$cette nouvelle commande, en supposant que le fichier soit enregistré sous le nom « localise2 », recherchera sur les fichiers spécifiés en argument, ou bien sur l'entrée standard, toutes les lignes contenant au moins l'une des deux chaines suivantes :
^[A-Z]
»,
[0-9]$
».
Tout comme la commande précédente, l'appel pourra se faire selon les deux méthodes ci-après :
localise2 fichierou bien, si la commande est utilisée comme un filtre :![]()
commande_envoyant_sur_la_sortie_standard| localise2
fichier![]()