#1 Aujourd'hui à 09:05
- DonutMan75
[RESOLU] Equivalent grep pour mettre en exergue un pattern ?
Bonjour,
avec grep, je sais extraire les lignes qui contiennent un PATTERN et mettre ce PATTERN en exergue avec --color=always par exemple.
Ce que je souhaite faire c'est afficher l'intégralité du fichier (comme avec cat) mais en mettant en exergue toutes les occurences du PATTERN (en l'affichant en rouge par exemple).
Avec grep, j'ai trouvé une rustine un peu moche avec l'option -C (context) qui permet de sélectionner N lignes avant et après
$ grep -C 10000 PATTERN fichier.txtSavez-vous s'il est possible d'avoir le comportement souhaité avec grep ? (rien ne semble l'indiquer dans le man et d'ailleurs, ce ne serait pas un comportement attendu de grep).
Sinon, existe-t-il une autre commande qui permettrait de faire ça ?
Eventuellement, je peux bidouiller un truc avec sed mais il existe peut-être quelque chose d'atomique déjà existant...
$ sed -e 's/PATTERN/\x1B[31mPATTERN\x1B[0m/' < fichier.txtMerci à vous smile
D.
Dernière modification par DonutMan75 (Aujourd'hui à 11:00)
Hors ligne
#2 Aujourd'hui à 10:17
- Watael
Re : [RESOLU] Equivalent grep pour mettre en exergue un pattern ?
salut,
sed, c'est bien.
note que la redirection est inutile.
fais-toi une fonction qui accepte deux arguments, à mettre dans ton .bashrc :
exerg()
{
#TODO: tester l'existence des arguments et la nature du second
motif=1ドル
fichier=2ドル
sed -e 's/'"$motif"'/\x1B[31m&\x1B[0m/' "$fichier"
}à appeler ainsi :
exerg "pattern ou motif" /chemin/vers/fichierDernière modification par Watael (Aujourd'hui à 10:18)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Aujourd'hui à 10:59
- DonutMan75
Re : [RESOLU] Equivalent grep pour mettre en exergue un pattern ?
Merci Watael !
Effectivement mettre ça dans une fonction, c'est bien.
Je passe le fil en résolu !
D.
Dernière modification par DonutMan75 (Aujourd'hui à 11:00)
Hors ligne