Regardez, le script sed qui imprime 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, donc
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 avec le rapport strace pour tail ./huge-file
:https://unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#102910
Vous pouvez simplement utiliser la commande suivante :-
queue -NUMBER_OF_LINES FILE_NAME
par exemple tail -100 test.log
- va récupérer les 100 dernières lignes de test.log
Dans le cas où, si vous voulez la sortie de ce qui précède dans un fichier séparé, vous pouvez diriger comme suit :-
tail -NUMBER_OF_LINES FILE_NAME> OUTPUT_FILE_NAME
par exemple tail -100 test.log > output.log
- va récupérer les 100 dernières lignes de test.log et les stocker dans un nouveau fichier output.log)
Vous pouvez utiliser la commande tail comme suit :
tail -100 <log file> > newLogfile
Désormais, les 100 dernières lignes seront présentes dans newLogfile
MODIF :
Les versions plus récentes de tail comme mentionné par twalberg utilisent la commande :
tail -n 100 <log file> > newLogfile
"tail" est une commande pour afficher la dernière partie d'un fichier, l'utilisation des commutateurs disponibles appropriés nous aide à 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 nombre | -n nombre] [fichier ...]
Ici
-n nombre :L'emplacement est numéroté des lignes.
-f :L'option -f empêche la queue de s'arrêter lorsque la fin du fichier est atteinte, mais plutôt d'attendre que des données supplémentaires soient ajoutées à l'entrée. L'option -f est ignorée si l'entrée standard est un tube, mais pas si c'est un FIFO.
Récupérer les journaux des 100 dernières lignes
To get last static 100 lines
tail -n 100 <file path>
To get real time last 100 lines
tail -f -n 100 <file path>