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
7 Réponses :
Ceci pourrait fonctionner pour vous (GNU SED):
tac file | sed '/pattern/q' | tac
Inverser le fichier, imprimez jusqu'au premier motif, quittez et inverser le fichier.
Voici une façon prelis de le faire:
Un standalone awk:
La solution la plus simple consiste simplement à utiliser une correspondance REGEX sur l'ensemble du fichier:
perl -0777 -ne 'print $1 if /pattern(.*?)$/' file
Voici un pure Il lit le fichier deux fois et définit un premier drapeau pour la dernière fois trouvée de ou vous pouvez stocker des données dans un tableau comme ceci: p> awk code>
modèle code> , puis imprimer forme
motif code> et out. p>
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