J'ai besoin d'afficher des fichiers journaux volumineux à l'aide d'un shell bash. J'utilisais less
pour ouvrir les fichiers, mais comme les lignes sont trop longues, il y a une sorte de retour à la ligne / mot en cours.
Étant donné que les fichiers sont des journaux Log4J et qu’il existe un motif au début de chaque ligne, il est difficile d’analyser la sortie après avoir été encapsulé. C’est pourquoi j’ai commencé à utiliser less -S
les lignes longues qui sont tronquées.
Mais maintenant, je dois utiliser tail -f
, et la ligne est également renvoyée à la ligne. Est-il possible de désactiver le retour à la ligne dans un shell bash pour toutes les commandes?
Remarque: il existe une réponse à une question différente qui mentionne la séquence d'échappement echo -ne '\e[?7l'
, mais elle ne semble pas fonctionner avec Bash.
screen
, il existe une commande "wrap". Dansxterm
, il existe une-aw
option pour empêcher les retours à la ligne automatiques. Il existe probablement des ressources X pour d'autres émulateurs de terminaux. Quel émulateur utilisez-vous?gnome-terminal
.+aw
pourxterm
:) Mais cela résout le problème de la sortie (par exemple,ls -l
avec un tas de noms Windows-ish longs de TPB, cela fonctionne bien), pour la saisie , lorsque vous entrez une commande, vous avez probablement encore wrap wrap (ou, du moins, vous ne le voulez pas tel qu’il est actuellement+aw
: essayez d’écrire au-delà de la "bordure de colonne" puis revenez en arrière pour un énorme bogue GFX).urxvt
nerxvt
peut désactiver les retours à la ligne.Réponses:
Avez - vous réellement besoin
tail -f
ou si quelque chose commeless +F
faire? Comme il semble que vous souhaitiez toujours un téléavertisseur interactif, il me semble qu'il serait beaucoup plus facile de vous en tenirless
qu'à de le réimplémenter vous-même.Une note finale: avez-vous envisagé
tail -f file | less
?la source
screen
etxterm
comme ces émulateurs ont des options pour empêcher les retours à la ligne. Mais il y a une grande différence entre tronquer la ligne et cacher la queue pour que nous puissions la voir si nous le voulons. L'utilisationtail -f file | less -S
n'est pas parfaite car elle semble désactiver le-f
mais c'est la meilleure solution que j'ai trouvée.less
directement.Essayer:
less -S +F filename
la source
less -S
. Aussi très utile sur l'ordinateur portable.Nous avons trouvé une bonne réponse de la part du superutilisateur , qui fonctionne immédiatement pour
gnome-terminal
, et probablement aussi pour d’autres terminaux:la source
Si vous avez
COLUMNS
défini la variable, vous pouvez exécutersinon, remplacez
$COLUMNS
par la largeur des colonnes du terminal, obtenue parstty -a
.la source
$COLUMNS
(n'est pas immédiatement mise à jourSIGWINCH
, uniquement à l'invite suivante) etstty -a
(plus difficile à utiliser dans un script) esttput cols
.cut
comporter commeless -S
si la longue ligne était mise en mémoire tampon et que nous pouvions voir la ligne complète à l'aide des touches directionnelles?screen
fenêtres séparées avec chacunetail -f | cut
un script ou un script imitant leless
comportement. Mais ne pas avoir de solution, pour le moment.less -S
cela, il va bousiller du texte coloré, ou quoi que ce soit avec des fuites ANSI. Peut aussi bousiller Unicode.less -S
est plus utile avec du texte coloré. Vous pouvez utiliserless -S -E
pour quitter immédiatement - utile pour couper la sortie colorée à $ COLUMNS.Vous pouvez désactiver les changements de ligne pour
less
,tail
et toute autre commande sous le soleil avec Linux:Pour restaurer le retour à la ligne, utilisez:
la source
L'émulateur de terminal de terminateur (http://software.jessies.org/terminator/) permet de ne pas encapsuler de longues lignes et dispose d'un défilement horizontal (mais est écrit en Java).
la source
terminator v1.91
.terminator
, celui auquel gentledevil fait référence et celui que vous utilisez.Deux bonnes réponses / exemples ici
http://www.commandlinefu.com/commands/view/1710/tail-a-log-file-with-long-lines-truncated
Une mise en garde: au moins sur le terminal intégré sur mon Mac, couper ne semble pas gérer très bien les caractères de tabulation. Il semble que cela les affiche avec par exemple 8 espaces mais les calcule simplement comme 4 espaces larges ou quelque chose comme ça. En d'autres termes, si votre terminal a une largeur de 80 caractères et que votre sortie contient plusieurs onglets par ligne, vous devez définir la largeur sur 60 ou quelque chose comme ça. YMMV.
la source
Utilisez les options ci-dessous avec
less
. Il désactivera le retour à la ligne et préservera les couleurs du texte, si spécifié.less -SR +F filename
la source
Il y a quelques exemples sur cette page queue de tuyauterie avec -f ... D'après mes tests, cela ne fonctionne pas correctement. Si vous avez vraiment besoin de tuyauterie (par exemple, si vous avez besoin de quelque chose de plus, comme grep), vous pouvez utiliser quelque chose comme: :
Ce n’est probablement pas le meilleur pour la performance, mais ça marche ... sinon, si aucune extra pipping n'est requis, vous pouvez utiliser quelque chose de différent, comme:
la source
Beaucoup de commentaires s’écartent de la question. La question de OP était
Certains commentaires ont été faits sur la fonctionnalité autowrap, déclarant que tous les terminaux ne l’ont pas. Peut-être. Mais (à part terminator , dont les développeurs ne documentent aucune description de terminal ), tous les exemples donnés étaient xterm, rxvt et certains sosies ou descendants. Ce sont tous liés.
L'
+aw
option dansxterm
correspond à laautoWrap
ressource. En consultant le manuel, on dit queet dans les séquences de contrôle XTerm, il est dit
ce qui ne dépend certainement pas de votre choix de terminal, car tout terminal compatible VT100 prend en charge cette fonctionnalité. xterm et rxvt font cela, par exemple. Les autres aussi.
Que la fonctionnalité soit utile à l'OP est discutable. Supprimer le retour à la ligne n'est qu'un aspect du problème:
COLUMNS
une valeur "grande".cat
afficher un fichier journal à l’écran).Il y a des pagers qui peuvent faire ce qui est nécessaire, par exemple multitail , avec la liste de ses caractéristiques.
Étant basé sur des bourses, il devrait fonctionner sur l’un des terminaux cités.
la source
vi
type vi à l'intérieur
Je crois qu’il existe également un plugin pour vi qui vous donnera un comportement similaire à celui d’une queue.
la source
Si vous voulez vraiment voir les lignes complètes, vous pouvez copier et coller le texte dans un éditeur de texte comme Atom ou Notepad ++ et désactiver les retours à la ligne.
la source