2011-06-13 16 views
5

Bu yüzden bazı hata ayıklama bilgilerini günlüğe gönderiyorum, bunu stdout'a gönderiyorum. Belirli bir noktada, kayıt işlemi yapılır ve uygulama bir şeyler bekler, ancak grep'in çıkışı orta hatta kesilir. Yani bir çizgi ile eşleşti, ama o çizginin tümünü vermedi.Syslog, stdout'a gönderilir, çıkarılan, ortadaki satır kesiliyor

Grep'i yıkamaya zorlamanın bir yolu var mı?

Teşekkürler.

GÜNCELLEME: Görünüşe göre --line tamponlu yardımcı olacaktır.

cevap

3

Sorunu --line tamponlu bayrağı kullanarak grep ile çözdüğünü düşünüyorum. Ayrıca, uygulamanızın her satırın ardından stdout'unuzu temizlediğinden emin olun. Eğer stdout'unuz bir terminal ise, satır aralama öntanımlıdır ancak başka bir programa pipettiğinizde, varsayılan değer tam arabellek kullanmaktır.

Verileri --line tamponlu bayrağı olmayan (örneğin uniq gibi) olmayan bir programa aktarıyorsanız, stdbuf programına bakın (http://www.pixelbeat.org/programming /stdio_buffering/stdbuf-man.html) herhangi bir programın tamponlama seçeneklerini değiştirmenizi sağlar.

Sorunun iyi bir özeti ve bazı genel çözümler için bkz. http://www.pixelbeat.org/programming/stdio_buffering/.

+0

İyi bağlantılı bir kaynak. – artfulrobot

İlgili konular