2010-06-10 6 views
0

Je souhaite pouvoir enregistrer un flux de données que je renvoie à l'aide de la commande curl. J'ai essayé d'utiliser la commande cat, et la commande curl, mais je me trompe. Le code im utilisant actuellement est:Utilisation du terminal pour enregistrer/enregistrer un flux de données

cat > file.txt | curl http://datastream.com/data 

Toute aide serait appréciée.

+2

Pour mémoire, la syntaxe que vous utilisez enverrait la sortie de '' cat' à file.txt', et il serait essayez aussi d'envoyer cette sortie à l'entrée standard de curl (mais cela n'a pas pu être fait car cette sortie était déjà dans le fichier). Problème 1: 'cat' ne produit pas de sortie autre que ce qu'elle lit depuis sa propre entrée standard, donc elle resterait là à attendre que vous tapiez quelque chose. Problème 2: 'curl' ne lit pas ce qui vient dans son entrée standard. Et le problème 3: vous ne redirigez pas la sortie de curl n'importe où, il est simplement imprimé à l'écran. –

+0

Les réponses ci-dessous sont bonnes. Pourtant, je vous suggère de lire un peu sur la redirection d'E/S. Cela peut vous aider beaucoup la prochaine fois: http://en.wikipedia.org/wiki/Redirection_%28computing%29 – skinp

+0

@David: Bonne explication +1. Je pense que ce qui se passerait, c'est que le shell analyserait le tuyau et que le tuyau serait relié à la sortie du processus 'cat'. Le processus shell 'cat' ferait alors la redirection de sortie (fermant le pipe dans le processus), donc 'curl' n'obtiendrait aucune donnée sur son entrée. Le 'chat' resterait là à attendre l'EOF sur son entrée; Pendant ce temps, 'curl' produirait sa sortie vers la sortie standard, pas le fichier. Différence très mineure par rapport à ce que vous décrivez - c'est la séquence de 'tuyau ouvert; fourchette; fermer le tuyau; ouvrir le fichier 'ce n'est pas tout à fait ce que j'ai lu dans le vôtre. –

Répondre

3

Essayez:

curl http://datastream.com/data > output_file.txt 
+2

Vous pouvez également utiliser 'curl -o fichier_sortie.txt http: // datastream.com/data'. – zneak

+0

Brillant qui a fonctionné! Silly me compliquer les choses, aurait dû lire la page de manuel pour curl: p Merci: D – jonhurlock

3

Donc, vous utilisez « boucle » pour recueillir des données, et que vous voulez capturer sa sortie?

curl http://example.com/data > file.txt 

Ou bien (du man page):

curl -o file.txt http://example.com/data 
+0

Cheers: D à la fois travaillé. Aurait dû lire l'homme pour curl. Merci beaucoup pour votre aide: D – jonhurlock

Questions connexes