|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Sinuakin Jean Inscription : février 2010 Messages : 8 ![]() |
Bonjour à tous,
je cherche un moyen d'obtenir dans un script awk, le même effet que ces commandes ont dans un script bash : ... ou qu'un scanf par exemple en C. Ce que voudrais, c'est que le script "attende" que l'utilisateur entre quelque chose, puis le stocke dans une variable (pour ensuite le comparer avec une autre chaîne de caractères). Merci d'avance. PS: je suis débutant en shell, awk, ... |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : septembre 2007 Messages : 685 ![]() |
Bonjour,
la commande awk est assez peu utilisée de la sorte, mais c'est tout-à-fait possible. Par exemple s'il faut entrer une veleur unique pour un fichier: Code :
awk 'BEGIN {printf "entrez var: "; getline var < "/dev/stdin"} {print var, $2}' file_in Code :
awk '{printf "entrez var pour %s: ", $1; getline var < "/dev/stdin"; print var, $2}' file_in
__________________
Un problème bien posé est déjà résolu (H. Bergson). |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Sinuakin Jean Inscription : février 2010 Messages : 8 ![]() |
Bonjour, oui c'est celle-là qu'il me faut : entrer une valeur par ligne de fichier.
Merci beaucoup, j'ai testé en ligne de commande et ça marche. Mais est-il aussi possible de le mettre dans un script dont le shebang est #!/usr/bin/awk -f ? J'ai essayé sans succès, voilà le (début de) code : Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() Inscription : septembre 2007 Messages : 685 ![]() |
Et avec le fichier test.awk comme ceci?
Code :
__________________
Un problème bien posé est déjà résolu (H. Bergson). |
||
|
|
00
|
|
|
#5 | ||||||
|
Invité de passage
![]() Sinuakin Jean Inscription : février 2010 Messages : 8 ![]() |
Ah excellent, merci beaucoup :>
L'erreur venait donc de l'option -f en trop. Peut-être que ce code pourra servir à d'autres débutants; le voilà, avec un exemple d'utilisation : script lt.awk : Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : septembre 2007 Messages : 685 ![]() |
Quelques précisions:
__________________
Un problème bien posé est déjà résolu (H. Bergson). |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Sinuakin Jean Inscription : février 2010 Messages : 8 ![]() |
Merci.
Pour le point 3 je ne comprends pas, je pensais que l'on pouvait faire : { action } au lieu de : condition { action }, lorsqu'il n'y avait pas de condition. dans mon premier code : Code :
|
||
|
|
00
|
|
|
#8 | ||||||
|
Membre chevronné
![]() Inscription : septembre 2007 Messages : 685 ![]() |
Il faut:
Code :
Code :
Code :
Re-edit: Flûte, ton bloc à toi était next. Donc logiquement ça devrait marcher. L'option -f du shebang n'est pas prise en compte. Pour l'instant je sèche... Re-re-edit: Ça y est
__________________
Un problème bien posé est déjà résolu (H. Bergson). Dernière modification par jmelyn ; 14/02/2010 à 17h57. |
||||||
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Sinuakin Jean Inscription : février 2010 Messages : 8 ![]() |
ok.
j'ai re-testé en partie l'ancien code, et il fonctionne : Code :
|
||
|
|
00
|
|
|
#10 | |
|
Invité de passage
![]() Sinuakin Jean Inscription : février 2010 Messages : 8 ![]() |
Citation:
Merci pour tout. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com