Existe-t-il des versions (remplacements) des utilitaires shell standard qui affichent les résultats (partiels) mis à jour à la volée (peut-être sur stderr)?Existe-t-il des utilitaires de shell incrémentiels (interactifs)? C'est à dire. tri "en ligne", wc etc
Dire que je veux faire:
du ~/* -s | sort -rn | head
Tout d'abord absolument rien ne se passe, avant du
est fait. Je voudrais cependant voir des résultats partiels, c'est-à-dire que je veux sort
pour montrer les données qu'il a déjà vues. De cette façon, je peux rapidement voir si quelque chose ne va pas avec la sortie et le corriger. Comme lors de l'exécution de grep.
Même chose avec ceci:
du ~/* -s | wc
Je voudrais à jour à la volée.
Voici une vilaine contournement montrant un peu ce que je veux. (Mais de préférence, il ne doit pas consommer inutilement l'écran, comme avec du
ci-dessous.)
du ~/* -s > /tmp/duout | watch -n .1 sort -rn /tmp/duout
du ~/* -s > /tmp/duout | watch -n .1 wc /tmp/duout
Cependant, je préfère de beaucoup si je pouvais n'aime:
du ~/* -s | isort -rn
À quelle fréquence «sort» est-il l'étape la plus lente d'un pipeline? J'espérais quelque chose en utilisant un algorithme de tri en ligne, montrant éventuellement des résultats partiels sur stderr donc stdout est toujours utile dans le pipeline. En fait, il faudrait juste garder une trace de (par exemple) 10 plus grand/plus petit. Hmm ... Un tri en ligne pourrait-il être plus rapide dans certains cas? Par exemple. Si l'entrée arrive lentement, il n'y aura pas besoin d'une longue pause après la réception du dernier octet. – johv
Votre première question n'est pas pertinente. La bonne question serait: «Combien de fois le sort prend-il du temps? Toutes les petites choses additionnent tu sais. Votre dernière question est très intéressante. Il est possible que ce soit plus rapide de faire un tri incrémental dans certains cas. Pas plus efficace, mais moins de temps sur l'horloge murale. Cependant votre cas semble très spécifique. Peut-être que vous devriez écrire quelque chose! – Caleb