Des outils de traçage (basés sur du texte) dans la boîte à outils Unix?

9

Je me demandais s'il y avait des outils de traçage génériques disponibles dans la boîte à outils Unix?
En traçant, je veux dire des barres simples ou des choses que vous voyez dans de nombreux utilitaires basés sur des curses.
Et par boîte à outils Unix, je veux dire des choses que vous pouvez y transférer des données en utilisant les conventions Unix standard.

J'ai besoin de compter quelque chose dans les fichiers journaux (que je surveille tail -Fou quelque chose) et de tracer des rapports en direct de choses (comme des erreurs en pourcentage ou des avertissements).

Ali
la source

Réponses:

9

Vous recherchez gnuplot, avec l'option terminaldéfinie sur dumb.

Pas mon premier choix, car j'ai ROOT sur toutes mes machines, mais une veille fiable et omniprésente.

Le PAW de Cernlib pourrait également faire une sortie ASCII, bien que vous deviez être assez courageux pour l'utiliser réellement car il semble supposer que vous avez un terminal pliable en éventail de 132 colonnes.

dmckee --- chaton ex-modérateur
la source
... The development and support for CERNLIB has been discontinued. Libraries will be continued to be provided "as is", alertant? Quel est l'avantage d'utiliser le PAW de Cernlib au lieu du latex R Sweave par exemple? Jamais entendu parler de cet outil générique?! J'ai utilisé gnuplot avant R Sweave Latex, je trouve ce dernier beaucoup plus pratique à utiliser - tout dans un seul fichier texte, y compris les images. Pouvez-vous faire cela avec gnuplot?
@hhh Vous noterez le temps de "La PAW de Cernlib pourrait aussi faire" , bien que les gens l'utilisent encore car il y a beaucoup de code mature là-bas.
dmckee --- chaton ex-modérateur
très bien mais à quoi sert la pièce ajoutée? "132 column fan-fold terminal", qu'Est-ce que c'est? Pour les imprimantes matricielles? C'est donc un très vieux projet?! Désolé votre réponse est trop obstruée par l'âge, "[n]ot my first choice"avec gnuplot? Cela me prend du temps pour comprendre ce que vous voulez dire et écrire. Pourquoi gnuplot?
Le mode de sortie ASCII pour PAW était mieux décrit comme "maladroit". Au moment où j'utilisais cernlib, il était natif sur X et pouvait écrire directement en postscript ou en postscript encapsulé qui est ce que nous avons utilisé, cependant, certaines parties peuvent retracer leurs racines au code établi au début des années 1960. L'hypothèse semble avoir été que vous avez un terminal sur papier ; beaucoup de ceux-ci utilisaient un format large de 132 caractères avec des bandes claires et foncées alternées pour les rendre faciles à lire. Les geeks assez vieux seront tous capables de se souvenir du truc (vous l'avez encore vu de temps en temps jusqu'en 1980).
dmckee --- chaton ex-modérateur
1
set term dumbtracer ascii
kev
3

Vous pouvez utiliser R qui peut vous produire de très beaux graphiques et faire beaucoup d'analyses statistiques sur vos données. Ce billet de blog vous montre un moyen de le faire.

De même, vous pouvez utiliser gnuplot voir ici et ici

Sardathrion - contre les abus SE
la source
merci, mais je ne veux pas utiliser d'interface graphique, pas pour écrire le code ni pour montrer les tracés, je veux le faire entièrement dans le terminal. D'ailleurs, je préfère pouvoir l'exécuter sans avoir besoin de sudo (pour l'installation de quoi que ce soit).
Ali
@Ali: Regardez le billet de blog suivant: r-bloggers.com/ascii-scatterplots-in-r
Sardathrion - contre les abus SE
merci, je n'en avais aucune idée, je dois essayer ceci, bien que je n'ai jamais utilisé R mais devrait être facile pour un cas d'utilisation simple mp.
Ali
1

"Generic plotting tools available in the unix toolbox"est probablement tous les outils Un * x de base, vous devez combiner des outils pour créer des choses. J'adore combiner Latex, R et Sweave! Le terme "logs"laisse la question un peu ouverte mais apparemment par but, remarquez le terme "generic". Donc rien sur le prétraitement avec AWK / SED / etc et seulement sur le traçage des fichiers texte. S'amuser!

entrez la description de l'image ici

$ mkdir Pictures
$ R CMD Sweave paper.Rnw 
Writing to file paper.tex
Processing code chunks with options ...
 1 : term verbatim

You can now run (pdf)latex on 'paper.tex'
$ pdflatex paper.tex 3&>/dev/null

$ evince paper.pdf 

paper.tex

$ cat paper.tex

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage[T1]{fontenc}    % intended quotes

\begin{document}
\sloppy

<<echo=FALSE>>=
png('./Pictures/examples.png')
x<-1:10
y<-10:1

par(mfrow=c(2,2))
                # Demand/Supply example
plot(x,y-2, type='l', ylab='Price', xlab="Quantity")
lines(y,x+2)
lines(x,x)

title(main="Examples by HHH for R Sweave Latex")

hist(rnorm(100))        # histogram example
plot(sin(1:1E3),cos(1:1E3)) # circle example
plot(sin(1:1E3),1:1E3)      # sin example
@
\includegraphics{./Pictures/examples.png}

\end{document}

Maintenant, le prochain casse-tête est l'accessibilité (en supposant que l'op souhaite une sortie ASCII, pas seulement un outil générique). Désolé, je n'ai pas encore de réponse, mais je vais énumérer ci-dessous des informations pour une exploration plus approfondie.

Penser à voix haute: choisissez un format d'image raster tel que TIFF, puis imprimez chaque centième colonne ou s / chose comme ça pour le voir. Désolé de spéculer, mais je sais que TIFF est un format d'image raster de facto pour toutes sortes d'archivage - je ne sais pas encore exactement comment les moteurs OCR, tels que Tesseract, les gèrent, mais ici le problème est facile car vous pouvez sauter beaucoup de choses dans le prétraitement de l'image - parce que nous savons comment R les génère. Quelqu'un a une idée de comment faire? Ou suis-je en train de réinventer la roue? Au plus simple, choisissez un outil qui génère des charnières en ASCII, un peu restrictif "generic".

en relation

  1. Quels outils pour la visualisation de portefeuille ASCII?
Communauté
la source
Lisez attentivement la question (et les commentaires où elle est rendue plus explicite). L'OP souhaite afficher les résultats dans le terminal .
dmckee --- chaton ex-modérateur
@dmckee: oui mais op nécessite aussi un "generic"outil?! Maintenant, c'est difficile car je pense que cela induit des sondes basées sur l'OCR, je ne sais pas si op le réalise.
Par "générique", je veux dire, des outils polyvalents, des choses comme awket sedqui ne sont pas "spécifiques", pas conçus pour un cas d'utilisation spécifique. Désolé si c'est déroutant. en gros, je veux faire des diagrammes à barres très simples dans le terminal. C'est tout.
Ali
@Ali: arrêtez d'expliquer. Vous commandez, nous répondons - et la meilleure réponse l'emporte. Ma réponse fonctionne sauf "sortie ASCII". Votre question est limpide mais pour le moment, je ne peux pas vous aider davantage - ne vous souciez pas que les gens aient des opinions différentes, détendez-vous simplement - quelqu'un va tôt ou tard résoudre ce problème. Je suis à la recherche d'une solution à un problème similaire même si peut - être nous allons ... pas sûr que nous devons creuser dans les moteurs OCR pour résoudre cela , mais je ne pense que cette question est encore "unsolved", va chercher ce ...
1

Vous pouvez simplement diriger votre sortie numérique vers un simple extrait de perl. Par exemple, voici un programme de test (en bash) qui ne fait que générer des nombres croissants:

(i=0; while true; do sleep 1; echo $i; i=$(( $i + 3 )); done)

En supposant que je suis intéressé par une plage de valeurs de 0 à 20 et que j'ai un terminal de 80 caractères de large, je ferai:

[above snippet] | perl -ne '$min=0; $max=20; $w=80; use POSIX; $d=ceil(log($max)/log(10)); $w-=$d; $v=$_<$min?0:$_>$max?$max:$_; $s=$w*$v/($max-$min); $bar=join("", ("*")x$s); $bar=~s/.$/|/ if $v==$max; print sprintf("%${d}d ",$_)."$bar\n";'

 0 
 3 ***********
 6 ***********************
 9 ***********************************
12 **********************************************
15 **********************************************************
18 **********************************************************************
21 *****************************************************************************|
24 *****************************************************************************|

Quelque chose comme ça fonctionnera sur à peu près n'importe quel système Linux, et la sortie et les paramètres sont faciles à modifier. Les frais généraux par rapport à l'utilisation de quelque chose comme gnuplot sont minuscules.

HorsePunchKid
la source