2016-05-18 1 views

Répondre

1

L'option de ligne de commande -f pour awk précise que l'argument suivant devrait être le fichier à lire les commandes.

Si vous omettez le -f, l'interprète va essayer d'appeler votre script en utilisant /bin/awk yourScriptFile qui échouera, .: par exemple

$ cat yourScriptFile 
#!/bin/awk 
{ print $1; } 
$ ./yourScriptFile 
awk: cmd. line:1: ./yourScriptFile 
awk: cmd. line:1:^syntax error 
awk: cmd. line:1: ./yourScriptFile 
awk: cmd. line:1: ^unterminated regexp 

Consultez la documentation POSIX pour awk (http://pubs.opengroup.org/onlinepubs/009695399/utilities/awk.html) ou man 1 awk pour plus de détails.

+0

bravo .. merci .. – abnv

+0

ami @abnv Veuillez accepter ma réponse si cela vous convient le mieux. – jotik

1

De AWK man page.

-f progfile 

awk utilise l'ensemble des motifs qu'il lit progfile.

Cela signifie que le script doit être trouvé dans progfile.

1

Je cite man awk:

-f fichier texte du programme est lu à partir du fichier au lieu de partir de la ligne de commande. Plusieurs options -f sont autorisées.

Voici un exemple:

Donner awk un programme utilisant -f filename

$ cat script.awk 
{print} 
$ awk -f script.awk <<< "abcd" 
abcd 

Ou créer un exécutable awk comme ceci:

$ cat script1.awk 
#!/usr/bin/awk -f 
{print} 
$ ./script1.awk <<< "abcd" 
abcd