Çıkmayan 'kafa'ya alternatif mi?


13

İlk n satırı yazdıracak bir yardımcı programa ihtiyacım var, ancak daha sonra çalışmaya devam ediyor, kalan satırları emiyor, ancak yazdırmıyor. Çalıştırmaya devam etmesi gereken bir işlemin çıktısıyla terminali boğmamak için kullanıyorum (sonuçları bir dosyaya yazar).

Yapabileceğimi düşündüm process | {head -n 100; cat > /dev/null}, ama daha zarif bir şey var mı?


2
İşlem kafadan sonra devam edecek, artık terminale yazdırılmayacak.
123

7
Aslında hangi problemi çözmeye çalışıyorsunuz?
Satō Katsura

2
Onları emmek için ne demek istiyorsun? Sadece kafa kafaya boru bağlarsanız, kalan çıkış reddedilir.
Julie Pelletier

7
@JuliePelletier ve stdout kapatılacak ve iyi yazılmış programlar (sadece stdout'a yazanlar) bunu fark edecek ve erken sona erecek.
cas

@castrap '' PIPE
Satō Katsura

Yanıtlar:


22

processYalnızca ilk 100 (veya her türlü) satırı yazdırırken çıktıyı "emmeye" devam etmek için :

process | awk 'NR<=100'

Veya:

process | sed -n '1,100p'

13
Genellikle sadece kullanıyorum... | tee /dev/null | head ...
David Schwartz

2
@DavidSchwartz evet - Yapacağım şey bu. Çok daha fazla tercih edilebilir, çünkü tüm çıktıları bir dosyaya dökebilir ve daha sonraki bir zamanda inceleyebilirsiniz. Bunun ne zaman gerekli olacağını asla bilemezsiniz - daha da kötüsü, arada sırada üzerine yazdığınız bir dosyanız var, en iyi ihtimalle, ne olduğunu / nedenini analiz etmek için bir günlük olarak kullanabilirsiniz.
VLAZ
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.