9
votes

Quelle est la commande simple et rapide unix pour imprimer toutes les lignes de la dernière occurrence d'un motif?

Quelle est la commande simple et rapide unique pour imprimer toutes les lignes de la dernière occurrence d'un motif à la fin du fichier?

sed -n '/pattern/,$p' file


0 commentaires

7 Réponses :


8
votes

Ceci pourrait fonctionner pour vous (GNU SED):

tac file | sed '/pattern/q' | tac


0 commentaires

7
votes

Inverser le fichier, imprimez jusqu'au premier motif, quittez et inverser le fichier. xxx


0 commentaires

2
votes

Voici une façon prelis de le faire: xxx


0 commentaires

1
votes

Un standalone awk: xxx


0 commentaires

2
votes

La solution la plus simple consiste simplement à utiliser une correspondance REGEX sur l'ensemble du fichier:

perl -0777 -ne 'print $1 if /pattern(.*?)$/' file


0 commentaires

0
votes

Voici un pure awk xxx

Il lit le fichier deux fois et définit un premier drapeau pour la dernière fois trouvée de modèle , puis imprimer forme motif et out.


ou vous pouvez stocker des données dans un tableau comme ceci: xxx


0 commentaires

0
votes

Utilisation de GNU AWK pour Multi-Char Rs et Gensub ():

$ cat file
a
b
c
b
d

$ awk -v RS='^$' -v ORS= '{print gensub(/.*(b)/,"\\1","")}' file
b
d


0 commentaires