dany strumień wejściowy z następujących linii:AWK: wykonać fałdy na każdej linii i analizować spowodować
123
456
789
098
...
Chciałbym zadzwonić
curl -s http://foo.bar/some.php?id=xxx
z xxx oznacza numer dla każdej linii i za każdym razem pozwól skryptowi awk pobrać trochę informacji z wyjścia curl, które jest zapisane w strumieniu wyjściowym. Ja zastanawiać, czy to jest możliwe, bez użycia awk „układ()” połączenie w sposób następujący:
cat lines | grep "^[0-9]*$" | awk '
{
system("curl -s " $0 \
" | awk \'{ #parsing; print }\'")
}'
Uważam, że to pytanie jest interesujące w sytuacjach, w których dane wejściowe pochodzą z "prawdziwego" strumienia, a nie z pliku. Na przykład urządzenie wykrywające, które okresowo generuje dane (linie), np. na/dev/ttyUSB0. W takich przypadkach proponowane odpowiedzi (odczyt z pliku) mają zastosowanie tylko wtedy, gdy dane ze strumienia są przechowywane w pliku tymczasowym i okresowo przetwarzają plik (a co jeśli dane zostaną dostarczone podczas przetwarzania?). Ale bardziej bezpośrednie podejście (za pomocą rury) może być lepsze ... –
Zwróć uwagę na 'cat | grep | Awk może być uproszczony do "awk"/^ [0-9] + $/{} "plik". A także, jakiego rodzaju analizowania chcesz wykonać? Być może nie jest konieczne używanie 'awk' w ogóle i wystarczająca jest pętla' while'''''. – fedorqui