sonucu aşağıdaki çizgilerle bir giriş akışı verildi: XXX her hat için sayı olmak üzereAWK: her bir çizgide kıvrılma yürütmek ve ayrıştırma
curl -s http://foo.bar/some.php?id=xxx
aramak istiyorum
123
456
789
098
...
ve her zaman bir awk betiği çıktı akışına yazılan curl çıktısından bazı bilgileri getirsin. Bu awk kullanmadan mümkün olup olmadığını merak ediyorum "sistemi()" şu şekilde çağrı:
cat lines | grep "^[0-9]*$" | awk '
{
system("curl -s " $0 \
" | awk \'{ #parsing; print }\'")
}'
Bu soruyu girdinin "gerçek" bir dosyadan değil, bir dosyadan geldiği durumlarda ilginç buluyorum. Örneğin, periyodik olarak, örneğin, veri (çizgiler) üreten bir algılama cihazı. on/dev/ttyUSB0. Bu gibi durumlarda, önerilen cevaplar (bir dosyadan okuma) sadece veri akışından geçici bir dosya saklamak ve dosyayı periyodik olarak işliyorsa (veri işlenirken veri geliyorsa) uygulanabilir. Ama daha doğrudan bir yaklaşım (bir boru kullanarak) daha iyi olabilir ... –
Not "kedi | grep | awk 'sadece 'awk'/^ [0-9] + $/{} 'file' için basitleştirilebilir. Ayrıca, ne tür bir ayrıştırma yapmak istiyorsunuz? Belki de "awk" yi kullanmak gerekli değildir ve "while while" döngüsü yeterlidir. – fedorqui