結果解析:AWK:各ライン上にカールを実行し、次の行で入力ストリーム所与
123
456
789
098
...
私はxxxは各ラインの数であると
curl -s http://foo.bar/some.php?id=xxx
を呼び出したい、および毎回awkスクリプトが出力ストリームに書き込まれるカール出力から何らかの情報を取得するようにします。私は、これはawkをを使用せずに、可能であれば疑問に思って「システム()」次のように呼び出す:
はcat lines | grep "^[0-9]*$" | awk '
{
system("curl -s " $0 \
" | awk \'{ #parsing; print }\'")
}'
この質問は、入力がファイルではなく「実際の」ストリームからのものである場合に興味深いものです。例えば、データ(線)を周期的に生成する検知装置。/dev/ttyUSB0にあります。そのような場合、提案された回答(ファイルからの読み込み)は、ストリームからのデータを一時ファイルに格納し、ファイルを定期的に処理する場合(データが処理中に到着した場合はどうなるでしょうか?しかしもっと直接的なアプローチ(パイプを使うこと)はもっと良いかもしれません... –
'cat | grep | grep | grep awk'は 'awk '/^[0-9] + $/{}' file'に単純化することができます。また、どのような構文解析をしたいのですか?おそらく 'awk'を全く使う必要はなく、' while read'ループで十分です。 – fedorqui