je voudrai faire un petit script bash qui a execute une commande
plusieurs fois de suite, apres avoir recuperer les arguments de la
commande dans un fichier texte...
Si on ne veut qu'un seul argument on fait par exemple :
for X in `awk '{print $1}' fichier`;
do
`commande $X`
done
Mais si je veux deux arguments, comment faire ? Le fichier est fait
comme ca :
arg11 arg12
arg21 arg22
arg31 arg32
et je veux lancer commande arg11 arg12, puis commande arg21 arg22 etc...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
no_spam
On Wed, 29 Dec 2004 01:43:48 +0100, souliane wrote:
Bonjour,
je voudrai faire un petit script bash qui a execute une commande plusieurs fois de suite, apres avoir recuperer les arguments de la commande dans un fichier texte...
Si on ne veut qu'un seul argument on fait par exemple :
for X in `a ' fichier`; do `commande $X` done
Mais si je veux deux arguments, comment faire ? Le fichier est fait comme ca :
arg11 arg12 arg21 arg22 arg31 arg32
et je veux lancer commande arg11 arg12, puis commande arg21 arg22 etc...
La même chose, en remplaçant awk '{print $1}' par awk '{print $0}' ...
On Wed, 29 Dec 2004 01:43:48 +0100, souliane wrote:
Bonjour,
je voudrai faire un petit script bash qui a execute une commande
plusieurs fois de suite, apres avoir recuperer les arguments de la
commande dans un fichier texte...
Si on ne veut qu'un seul argument on fait par exemple :
for X in `a ' fichier`;
do
`commande $X`
done
Mais si je veux deux arguments, comment faire ? Le fichier est fait
comme ca :
arg11 arg12
arg21 arg22
arg31 arg32
et je veux lancer commande arg11 arg12, puis commande arg21 arg22 etc...
La même chose, en remplaçant awk '{print $1}' par awk '{print $0}' ...
On Wed, 29 Dec 2004 01:43:48 +0100, souliane wrote:
Bonjour,
je voudrai faire un petit script bash qui a execute une commande plusieurs fois de suite, apres avoir recuperer les arguments de la commande dans un fichier texte...
Si on ne veut qu'un seul argument on fait par exemple :
for X in `a ' fichier`; do `commande $X` done
Mais si je veux deux arguments, comment faire ? Le fichier est fait comme ca :
arg11 arg12 arg21 arg22 arg31 arg32
et je veux lancer commande arg11 arg12, puis commande arg21 arg22 etc...
La même chose, en remplaçant awk '{print $1}' par awk '{print $0}' ...
David LE BOURGEOIS
Bonjour,
je voudrai faire un petit script bash qui a execute une commande plusieurs fois de suite, apres avoir recuperer les arguments de la commande dans un fichier texte...
Si on ne veut qu'un seul argument on fait par exemple :
for X in `awk '{print $1}' fichier`; do `commande $X` done
Pourquoi ne pas utiliser la fonction system() de awk ?
awk '{ system("commande " $1) }' fichier
Mais si je veux deux arguments, comment faire ? Le fichier est fait comme ca :
arg11 arg12 arg21 arg22 arg31 arg32
et je veux lancer commande arg11 arg12, puis commande arg21 arg22 etc...
Sur le même principe :
awk '{ system("commande " $1 " " $2) }' fichier
Ou bien avec xargs :
xargs -n2 commande < fichier
-- David LE BOURGEOIS
Bonjour,
je voudrai faire un petit script bash qui a execute une commande
plusieurs fois de suite, apres avoir recuperer les arguments de la
commande dans un fichier texte...
Si on ne veut qu'un seul argument on fait par exemple :
for X in `awk '{print $1}' fichier`;
do
`commande $X`
done
Pourquoi ne pas utiliser la fonction system() de awk ?
awk '{ system("commande " $1) }' fichier
Mais si je veux deux arguments, comment faire ? Le fichier est fait
comme ca :
arg11 arg12
arg21 arg22
arg31 arg32
et je veux lancer commande arg11 arg12, puis commande arg21 arg22 etc...
je voudrai faire un petit script bash qui a execute une commande plusieurs fois de suite, apres avoir recuperer les arguments de la commande dans un fichier texte...
Si on ne veut qu'un seul argument on fait par exemple :
for X in `awk '{print $1}' fichier`; do `commande $X` done
Pourquoi ne pas utiliser la fonction system() de awk ?
awk '{ system("commande " $1) }' fichier
Mais si je veux deux arguments, comment faire ? Le fichier est fait comme ca :
arg11 arg12 arg21 arg22 arg31 arg32
et je veux lancer commande arg11 arg12, puis commande arg21 arg22 etc...
Sur le même principe :
awk '{ system("commande " $1 " " $2) }' fichier
Ou bien avec xargs :
xargs -n2 commande < fichier
-- David LE BOURGEOIS
SoULiAne
Merci pour vos réponses, j'ai eu des problemes avec mon serveur mail je n'ai pas pu vous répondre avant mais je tenais à vous remercier et à vous dire que c'est bon :)
Merci pour vos réponses, j'ai eu des problemes avec mon serveur mail je
n'ai pas pu vous répondre avant mais je tenais à vous remercier et à
vous dire que c'est bon :)
Merci pour vos réponses, j'ai eu des problemes avec mon serveur mail je n'ai pas pu vous répondre avant mais je tenais à vous remercier et à vous dire que c'est bon :)
Jean-Julien Claudon
souliane wrote:
je voudrai faire un petit script bash qui a execute une commande plusieurs fois de suite, apres avoir recuperer les arguments de la commande dans un fichier texte... [...] Mais si je veux deux arguments, comment faire ? Le fichier est fait comme ca :
arg11 arg12 arg21 arg22 arg31 arg32
et je veux lancer commande arg11 arg12, puis commande arg21 arg22 etc...
une possibilité: $ cat fichiers_arguments|sed /^/commande /|sh
ou s'il y a besoin d'isoler explicitement les deux premiers mots séparés par des espaces ou tabulations de chaque ligne: $ cat fichier_arguments|sed -e "s/^[ t]*//" -e "s/[ t]+/ /g"|cut -d" " -f1-2|sed -e "s/^/commande /"|sh
Jean.
souliane wrote:
je voudrai faire un petit script bash qui a execute une commande
plusieurs fois de suite, apres avoir recuperer les arguments de la
commande dans un fichier texte...
[...]
Mais si je veux deux arguments, comment faire ? Le fichier est fait
comme ca :
arg11 arg12
arg21 arg22
arg31 arg32
et je veux lancer commande arg11 arg12, puis commande arg21 arg22 etc...
une possibilité:
$ cat fichiers_arguments|sed /^/commande /|sh
ou s'il y a besoin d'isoler explicitement les deux premiers mots séparés par
des espaces ou tabulations de chaque ligne:
$ cat fichier_arguments|sed -e "s/^[ t]*//" -e "s/[ t]+/ /g"|cut -d" "
-f1-2|sed -e "s/^/commande /"|sh
je voudrai faire un petit script bash qui a execute une commande plusieurs fois de suite, apres avoir recuperer les arguments de la commande dans un fichier texte... [...] Mais si je veux deux arguments, comment faire ? Le fichier est fait comme ca :
arg11 arg12 arg21 arg22 arg31 arg32
et je veux lancer commande arg11 arg12, puis commande arg21 arg22 etc...
une possibilité: $ cat fichiers_arguments|sed /^/commande /|sh
ou s'il y a besoin d'isoler explicitement les deux premiers mots séparés par des espaces ou tabulations de chaque ligne: $ cat fichier_arguments|sed -e "s/^[ t]*//" -e "s/[ t]+/ /g"|cut -d" " -f1-2|sed -e "s/^/commande /"|sh
Jean.
Nicolas George
souliane wrote in message <cqt5lj$ju$:
J'ai du rajouter le echo et mettre entre `` la commande a lancer, sinon il n'attendait pas la fin de l'execution de ./autre_script pour continuer la boucle...
Gnî ? La méthode normale, c'est simplement
./autre_script "$x" "$y"
sans echo ni backquotes. Si quelque chose part en arrière plan, c'est qu'il y a un bug dans autre_script.
souliane wrote in message <cqt5lj$ju$1@news.u-strasbg.fr>:
J'ai du rajouter le echo et mettre entre `` la commande a lancer, sinon
il n'attendait pas la fin de l'execution de ./autre_script pour
continuer la boucle...
Gnî ? La méthode normale, c'est simplement
./autre_script "$x" "$y"
sans echo ni backquotes. Si quelque chose part en arrière plan, c'est qu'il
y a un bug dans autre_script.
J'ai du rajouter le echo et mettre entre `` la commande a lancer, sinon il n'attendait pas la fin de l'execution de ./autre_script pour continuer la boucle...
Gnî ? La méthode normale, c'est simplement
./autre_script "$x" "$y"
sans echo ni backquotes. Si quelque chose part en arrière plan, c'est qu'il y a un bug dans autre_script.