Czy można wykonać polecenie (uruchomić wielokrotnie)? jak śledzić plik za pomocą tail -f?

10

Mam skrypt, który tworzy plik „Detail.out”. Wiem, że skrypt jest zakończony, ilekroć plik zawiera określoną liczbę wierszy (około 21025). Więc siedzę w wierszu polecenia z uruchomionym:

[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
  ...   ...

Zwykłem tail -foglądać określony plik, ale chciałbym śledzić dane wyjściowe wc -l */Detail.outpolecenia pokazanego powyżej. czy to możliwe? Obecnie używam tcshw Ubuntu 11.04, jeśli to ma znaczenie.

M. Tibbits
źródło

Odpowiedzi:

18

Wypróbuj watchpolecenie, chociaż podejrzewam, że prawie każdy napisał swoją własną wersję w tym czy innym czasie. (Wersja tani jest while :; do clear; "$@"; sleep 5; done.)

geekozaur
źródło
0

Nie jestem pewien, czy o tym wiesz, ale możesz również przekierować wyjście programu do pliku. Zobacz http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html Tak więc innym sposobem może być po prostu przekierowanie danych wyjściowych do pliku, a następnie użycie taila na tym pliku, tak jak to już robiłeś. .

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

A w innym terminalu możesz biegać $ tail -f detail-out-list.txttak, jak jesteś przyzwyczajony.

Jak zauważył Celeb, pozostawia jakiś plik, który może być tym, czego chcesz (w celu dalszego sprawdzenia tego pliku lub mieć trochę historii) lub nie, i nic nie jest wykonywane okresowo, jak watchrobi to dla ciebie.

typ danych
źródło
To w ogóle nie rozwiązuje problemu OP, tylko sprowadza pracę do innego polecenia i wymaga zupełnie nowej warstwy rzeczy do uruchomienia i wyczyszczenia.
Caleb
@Caleb: Nie jestem pewien, dlaczego jest to tak okropna odpowiedź. Plik wyjściowy może znajdować się w / tmp, więc nie ma potrzeby czyszczenia go. Nie sądzę, aby pytanie brzmiało: „jak mogę wielokrotnie uruchamiać polecenie?” ale „w jaki sposób mogę wykonać polecenie uruchamiane wielokrotnie?”. O ile widzę, wygląda na to, że odpowiada to na pytanie PO ... okej, przy bardziej uważnym czytaniu, myślę, że pytanie jest dwuznaczne, jak obecnie opublikowane: czy „(uruchamia się wielokrotnie)” znaczy „(które jest uruchamiane wielokrotnie ) ”lub„ (to znaczy, jak uruchomić go wielokrotnie?) ”?
iconoclast