Awk

bsad -  
 GATARD -
Bonjour,
Peut-on faire l'appel d'un fichier.txt dans un programme awk ?
Par exemple :
awk ' {
print "bonjour"
print "fichier.txt"
}
N.B le fichier.txt se trouve dans le même répertoire
Si quelqu'un sait comment le faire merci de me répondre.

3 réponses

Marden Messages postés 1075 Statut Membre 210
 
Bonsoir,

La syntaxe de AWK est la suivante :
awk [options] 'règles' fichier1 [fichier2 ...] ou
awk [options] -f fichier_de_règles fichier1 [fichier2 ...]
On utilise la première forme quand les règles sont courtes, ou quand l'appel se fait dans un script. C'est le cas ou l'on veut effectuer un filtrage de résultat de commande :
<commande> | awk ... | <autre_commande>
La sortie ne doit pas être redirigée dans un fichier d'entrée, il faut passer par un fichier intermédiaire qu'on renommera après exécution.
Les instructions sont de la forme :
<règle> { <action> [; <action> ...] }
Chaque instruction s'applique à chacune des lignes du (des) fichier(s) d'entrée, sauf si passage à la ligne suivante explicite.
L'action la plus courante est "print" qui envoie le contenu de la ligne courante ($0) vers la sortie.
Awk dispose de fonctions internes (ressemblant à celles du C dont printf, et diverses fonctions de traitement de chaînes de caractères), de structures de contrôle (for, while, do ... while, if , else), de la fonction "system" et l'on peut écrire ses propres fonctions (appel par "gsub").

exemple : awk -f mesregles.awk fichier.txt
avec le contenu de "mesregles.awk" suivant :
BEGIN { print 'Bonjour' }
{ print }
recopiera vers la sortie le fichier "fichier.txt" avec une ligne en plus et en tête contenant "Bonjour".

J'espère que ces quelques explications pourront te faire avancer.

Marden.
0
Nicolas
 
on ne peut pas faire print "fichier.txt" par contre
on peut faire une boucle avec getline

voir doc : http://www.salemioche.net/gawk06.htm#SEC46

A+

Nicolas
0
GATARD
 
Bonjour,

je débute avec Awk et j'aurais voulu savoir s'il était possible d'utiliser dans mon script UNIX une variable déclarée dans un programme Awk intégré à mon script.
En fait je voudrais récupérer dans mon script UNIX la valeur de la variable après traitement par Awk.

Merci à l'avance pour vos réponse.
0