J'ai un script perl qui écrit un tableau rempli d'entiers sur stdout, chacun sur une ligne séparée. Alors j'obtenir une sortie comme:Comment puis-je exécuter une commande curl pour chaque ligne de sortie de mon script Perl?
412
917
1
etc
Ce que je voudrais faire est d'être en mesure de diriger la sortie de ce script dans xargs, et faire un appel en utilisant chaque boucle entier. Quelque chose comme ceci:
cat input.json | ./jsonValueExtracter.pl -s exampleId | xargs curl http://brsitv01:8080/exampleId/$1 > example$1.json
Voici un extrait d'un script simple que j'utilise.
my @values;
while(<STDIN>) {
chomp;
s/\s+//g; # Remove spaces
s/"//g; # Remove single quotes
push @values, /$opt_s:(\w+),?/g;
}
print join(" \n",@values);
Cependant, cela ne fonctionne pas comme je le pensais. Quand je lance la commande suivante:
cat input.json | perl jsonValueExtracter.pl -s exampleId | xargs echo http://brsitv01:8080/exampleId/$1
Je reçois la sortie:
http://brsitv01:8080/exampleId/ 412 917 1
Est-ce que je dois faire quelque chose de spécial à utiliser la sortie d'un script perl dans xargs?
Merci
note: utilisation inutile de 'cat':' perl jsonValueExtracter.pl -s exampleId