Terminal : Exécuter un fichier AWK

jmini

Membre actif
12 Novembre 2001
398
22
38
Metz
www.jmini.fr
Bonjour,

On a présenté en cours le langage de script/programmation AWK, et évidemment j'ai voulu essayer sur mon Mac. Aucun pb pour saisir une ligne dans le terminal.

Par contre ensuite il a été question d'écrire le script dans un fichier texte, de le rendre exécutable et de l'exécuter... Et là je ne sais pas comment faire... Les unixiens de la salle m'ont bien suggéré des choses (changer le bits qui indique si le fichier est exécutable, faire un Cmod...) ça ne marchait pas... À vrai dire, je n'ai même plus les messages d'erreurs parce que je n'ai pas retenu...

Est-ce que quelqu'un peut m'indiquer quelles sont les commandes pour faire exécuter un script AWK dans le terminal ?
Je pense que le fait que ce soit un script AWK n'a pas beaucoup d'importance et ça doit être pour tout le monde pareil. J'avoue que je maitrise encore très mal le côté UNIX du système d'exploitation.

MERCI
 
Je ne connais pas du tout Awk, mais voilà ce que j'ai vu en tapant awk dans mon shell :
Bloc de code:
Usage: awk [-f programfile | 'program'] [-Ffieldsep] [-v var=value] [files]
Donc sois tu tape awk -f tonfichier.awk.

Sinon tape which awk dans ton shell et si il te répond /usr/bin/awk (ça devrait être le cas) alors il devrait suffire de faire comme ça pour avoir des fichier executable :

la première ligne de ton fichier doit être :
Bloc de code:
#!/usr/bin/awk -f

Ensuite on admet que ton fichier s'appelle myfile.awk et qu'il est dans le répertoire courant :
chmod +x myfile.awk

Et le tour et joué :)

Maintenant tu peux l'appeler (si il est dans le repertoire courant) directement via ./myfile.awk ou via myfile.awk si tu a ajouté . à ton PATH ;)

:)
 
chmod +x myfile.awk
ou
Bloc de code:
$ chmod 755 myfile.awk
Maintenant tu peux l'appeler (si il est dans le repertoire courant) directement via ./myfile.awk ou via myfile.awk si tu a ajouté . à ton PATH
On peut aussi créer un répertoire bin dans le $HOME qu'on met dans le path:
Bloc de code:
$ echo "PATH=${HOME}/bin:$PATH\nexport PATH" >> .bash_profile
 
ou
Bloc de code:
$ chmod 755 myfile.awk

On peut aussi créer un répertoire bin dans le $HOME qu'on met dans le path:
Bloc de code:
$ echo "PATH=${HOME}/bin:$PATH\nexport PATH" >> .bash_profile
Oui moi c'est ce que j'ai fait chez moi d'avoir un bin/ dans mon home :)

Après il faut soit avoir ses script directement dedans, soit créer des alias (avec ln) dans ~/bin de ses script qui sont rangé ailleurs.
 
Tout d'abord, je vois que je n'ai même pas pris le temps de vous dire MERCI pour l'aide apportée il y a quelques mois...

la méthode ci dessous marche effectivement :

la première ligne de ton fichier doit être :
Bloc de code:
#!/usr/bin/awk -f

Ensuite on admet que ton fichier s'appelle myfile.awk et qu'il est dans le répertoire courant :
chmod +x myfile.awk

Et comme j'ai cherché à la refaire marcher aujourd'hui sans y parvenir, j'apporte une précision pour les nuls :
Quand il est écrit #!/usr/bin/awk -f doit être la première ligne du fichier, c'est le cas !!!
On ne peut pas avoir de ligne de commentaire avant...

Le terminal retournait l'erreur :
-bash: ./prog.awk: cannot execute binary file
juste parce que j'avais mis quelques ligne de commentaires avant.

Encore merci.