J'ai besoin de récupérer les 100 dernières lignes de journaux à partir du fichier journal. J'ai essayé la commande sed
sed -n -e '100,$p' logfilename
S'il vous plaît laissez-moi savoir comment puis-je changer cette commande pour récupérer spécifiquement les dernier 100 lignes.
Regardez, le script sed qui affiche les 100 dernières lignes que vous pouvez trouver dans la documentation de sed ( https://www.gnu.org/software/sed/manual/sed.html#tail ):
$ cat sed.cmd
1! {; H; g; }
1,100 !s/[^\n]*\n//
$p
$ sed -nf sed.cmd logfilename
Pour moi, c'est beaucoup plus difficile que votre script,
tail -n 100 logfilename
est beaucoup plus simple. Et c'est assez efficace, il ne lira pas tous les fichiers si ce n'est pas nécessaire. Voir ma réponse à strace report pour tail ./huge-file
: https://unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#10291
"tail" est la commande pour afficher la dernière partie d'un fichier. L'utilisation des commutateurs disponibles nous permet d'obtenir une sortie plus spécifique. le commutateur le plus utilisé pour moi est -n et -f
SYNOPSIS
queue [-F | -f | -r] [-q] [-b nombre | -c numéro | -n numéro] [fichier ...]
Ici
-n numéro: l'emplacement est une ligne numérique.
-f: L'option -f permet à tail de ne pas s'arrêter lorsque la fin du fichier est atteinte, mais d'attendre l'ajout de données supplémentaires à l'entrée. L'option -f est ignorée si l'entrée standard est un canal, mais pas s'il s'agit d'une FIFO.
Récupérer les 100 dernières lignes du journal
To get last static 100 lines
tail -n 100 <file path>
To get real time last 100 lines
tail -f -n 100 <file path>
Je sais que c'est très vieux, mais pour qui que ce soit, cela peut aider.
less +F my_log_file.log
c'est simplement fondamental, avec moins, vous pouvez faire beaucoup plus de choses puissantes. Une fois que vous commencez à voir les journaux, vous pouvez effectuer une recherche, aller au numéro de ligne, rechercher un modèle, et bien plus encore, plus le fichier est volumineux.
son comme vim pour les journaux [totalement mon avis]
documentation originale de less: https://linux.die.net/man/1/less
moins feuille de triche: https://Gist.github.com/glnds/8862214
len=`cat filename | wc -l`
len=$(( $len + 1 ))
l=$(( $len - 99 ))
sed -n "${l},${len}p" filename
la première ligne prend la longueur (nombre total de lignes) du fichier, puis +1 dans le total des lignes, après quoi nous devons aligner 100 enregistrements.
J'espère que cela t'aidera.