GNU/Linux >> Tutoriels Linux >  >> Linux

L'ajout d'un comportement de queue où enter ajoute des lignes vides à moins

Ce n'est pas vraiment tail le comportement de -- c'est le terminal. Tail envoie simplement un flux de sortie à stdout, qui va à votre terminal, et vous insérez des lignes vides au milieu de cette sortie en appuyant sur Entrée. Tail lui-même n'accepte pas du tout vos commentaires. Vous pouvez taper tout ce que vous voulez et cela s'affichera également.

less , cependant, est une application de console, et elle prend une entrée et la traite. Il gère la console à l'aide de séquences de contrôle de terminal, c'est ainsi que vous pouvez faire défiler. Vous laisser insérer des caractères arbitraires dans le flux gâcherait l'affichage et utiliserait de toute façon moins votre entrée pour contrôler le programme.

Malheureusement, il ne semble pas avoir de moyen de marquer visuellement la position actuelle. Ce n'est pas une demande de fonctionnalité terrible, cependant, et moins le fait obtenez toujours de nouvelles fonctionnalités de temps en temps.


J'ai trouvé votre question en cherchant moi-même la même réponse.

Déçu par la réponse acceptée, j'ai trouvé une solution de contournement. C'est loin d'être idéal, mais cela me permet de marquer ma position dans le journal que je suis avec less , c'est tout l'intérêt.

J'ai créé un petit script exécutable (je l'ai appelé marklog ) avec le contenu suivant, et placez-le dans mon chemin :

#!/bin/sh
echo >> $1
echo >> $1
echo >> $1
echo `date` ---------------------------------------------------------------------- >> $1
echo >> $1
echo >> $1

Bien sûr, cela ne fonctionne que si vous avez un accès en écriture au fichier journal, ce qui pourrait être un facteur décisif dans de nombreuses situations. J'ai également créé cette version que j'utilise pour écrire dans des fichiers journaux que je ne possède pas (mais auxquels j'ai un accès sudo) :

#!/bin/sh
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo `date` ------------------------------------------------------------------------- >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"

Ces scripts fournissent exactement le genre de pause visuelle que je recherchais. Il existe au moins 3 façons de les utiliser :

  1. Au point où vous auriez normalement appuyé plusieurs fois sur Entrée lors de l'utilisation de tail -f , exécutez plutôt marklog depuis un autre terminal (en fournissant le chemin vers le fichier journal en argument).

  2. Utilisez Ctrl Z suspendre less vous pouvez donc exécuter le script dans la même fenêtre de terminal, mais lorsque vous remettez en avant less (en utilisant fg , bien sûr), il ne sera plus en mode "suivre", vous devrez donc appuyer sur Maj F encore...

  3. Enfin, et cela pourrait être le moyen le plus pratique, car vous n'avez pas besoin de saisir le chemin d'accès au fichier journal :exécutez marklog directement depuis less en tapant !marklog % . Less remplacera le nom de fichier actuel par % . Cependant, less ne répondra pas au ! pendant qu'il est en mode "suivre", vous devrez donc appuyer sur Ctrl C premier à quitter le mode suivi, exécutez !marklog % , puis Maj F à nouveau.

Avec la méthode 3, vous obtenez également le bonus supplémentaire de l'historique des commandes de Less :appuyez simplement sur le ! puis utilisez la flèche vers le haut pour sélectionner la commande la plus récente (pour moi, c'est toujours marklog ).

J'espère que cela aidera quelqu'un autant que cela m'a déjà aidé.


Linux
  1. Debian - Où dois-je mettre le Sudo dans cette commande ? ?

  2. Diff où les lignes sont pour la plupart les mêmes mais en panne ?

  3. Fin de la queue -f après l'impression de N lignes ?

  4. Imprimer un fichier, en sautant les X premières lignes, dans Bash

  5. Simulation de la touche ENTRÉE dans le script bash

Comment afficher la sortie Tail -f avec des couleurs en utilisant uniquement Awk et afficher le reste de la sortie?

Regarder les journaux en utilisant la queue ou moins

chaîne d'écho | xclip -selection clipboard , copie la 'chaîne' mais y ajoute également une nouvelle ligne. Comment régler ceci?

Récupérer les journaux des 100 dernières lignes

Comment puis-je sortir une commande dans un fichier, sans obtenir un fichier vide en cas d'erreur ?

Utiliser tail pour suivre un fichier sans afficher les lignes les plus récentes