Bir komutu takip etmek mümkün mü (tekrar tekrar çalıştırın)? biri kuyruk -f kullanarak bir dosyayı takip gibi?


10

Bir dosya 'Detail.out' üreten bir komut dosyası var. Dosya belirli sayıda satır (kabaca 21025) içerdiğinde komut dosyasının tamamlandığını biliyorum. Kendimi komut isteminde otururken buluyorum:

[me@somewhere myDir]$ wc -l */Detail.out
  21025 A/Detail.out
  21025 B/Detail.out
  21025 C/Detail.out
  12995 D/Detail.out
  10652 E/Detail.out
   3481 F/Detail.out
  21027 G/Detail.out
  21025 H/Detail.out
  21025 I/Detail.out
  ...   ...

Ben kullandım tail -fbelirli bir dosyayı izlemek için, ama ben çıktısını sonucunu öğrenmek istiyorum wc -l */Detail.outyukarıda gösterilen komutu. Mümkün mü? Şu anda tcshönemli ise Ubuntu 11.04'te kullanıyorum .

Yanıtlar:


18

watchKomutu deneyin , ancak hemen hemen herkesin kendi versiyonunu bir kerede yazdığından şüpheleniyorum. (Cheapie sürümü while :; do clear; "$@"; sleep 5; done.)


0

Bunu bilip bilmediğinizden emin değilsiniz, ancak bir programın çıktısını da bir dosyaya yönlendirebilirsiniz. Bkz. Http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html Başka bir yol, çıktıyı bir dosyaya yönlendirmek ve daha önce alıştığınız gibi bu dosyada kuyruk kullanmak olabilir. .

$ find . -name "Detail.out" | xargs wc -l >> detail-out-list.txt

Ve başka bir Terminalde $ tail -f detail-out-list.txtalıştığınız gibi koşabilirsiniz .

Celeb belirttiği gibi etrafında ne istediğinizi bazı dosya bırakır (bu dosyayı daha fazla incelemek ya da bir geçmişe sahip olmak) ya da değil ve hiçbir şey watchsizin için olduğu gibi periyodik olarak yürütülür .


Bu, OP sorusunu hiç ele almaz, sadece işi başka bir komuta yönlendirir ve çalıştırılması ve temizlenmesi için tamamen yeni bir katman gerektirir.
Caleb

@Caleb: Bunun neden bu kadar korkunç bir cevap olduğu konusunda net değilim. Çıktı dosyası / tmp içinde olabilir, bu yüzden onu temizlemeye gerek yoktur. Sorunun "bir komutu tekrar tekrar nasıl çalıştırabilirim" olduğunu sanmıyorum. ancak "tekrar tekrar çalıştırılan bir komutu nasıl takip edebilirim?". Gördüğüm kadarıyla, bu OP'nin sorusuna cevap veriyor gibi görünüyor ... daha dikkatli okumada tamam, sanırım soru şu anda yayınlandığı gibi belirsiz: "(tekrar tekrar çalıştır)" demek "(tekrar tekrar çalıştırılıyor) ) "veya" (yani, tekrar tekrar nasıl çalıştırırım?) "?
iconoclast
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.