Quel est le meilleur moyen d'obtenir uniquement la correspondance finale d'une expression régulière dans un fichier à l'aide de grep?
De plus, est-il possible de commencer la recherche de code depuis la fin du fichier au lieu du début et de l'arrêter dès la première correspondance?
tac file | grep -m 1 pattern
grep -n
) dans le fichier réel, je pensetac
qu’il fallait quasiment éviter, sauf si je voulais faire une soustraction avecwc -l
. Sinon ,tac
avecgrep -m1
fait beaucoup de sens.grep
elle cessera de fonctionner après le premier match. sans-m 1
,grep
trouvera d’abord tous les modèles correspondants dans le fichier , puishead
ne montrera que le premier - beaucoup moins efficace. Dennis, s'il vous plaît, pensez à poster ceci dans une réponse séparée!Pour quelqu'un qui travaille avec d'énormes fichiers texte sous Unix / Linux / Mac / Cygwin. Si vous utilisez Windows, vérifiez les outils Linux sous Windows: https://stackoverflow.com/questions/3519738/what-is-the-best-way-to-use-linux-utilities-under-windows .
On peut suivre ce workflow pour avoir de bonnes performances:
zq
partir du package.Citation de son readme github:
Créer un index
Interrogation de l'index
la source
J'utilise toujours le chat (mais cela le rend un peu plus long):
cat file | grep pattern | tail -1
Je voudrais blâmer mon professeur de cours d'administration Linux au collège qui aime les chats :))))
- Vous n'êtes pas obligé de commencer par lire un fichier avant de le récupérer.
grep pattern file | tail -1
et est plus efficace aussi.la source
cat
du fichier et de le diriger versgrep
. Vous pouvez fairegrep
rechercher le fichier directement viagrep pattern file
(puis utilisertail
pour renvoyer le dernier résultat), comme dans la réponse de Cakemox.