#1 Le 28/05/2014, à 10:14
- Le Goss
Bash: grep tronquer le chemin du fichier
Bonjour à tous,
J'effectue des recherches du type
grep -E -i --color=always "blabla" /home/${USER}/mondossier/monsousdossiera/fichiertextea /home/${USER}/mondossier/monsousdossiera/fichiertexteb
Le script où se trouve cette commande est dans "mondossier".
Suite au traitement de ce sujet je suis obligé de mettre le chemin tel quel.
Le résultat de la recherche est:
/home/legoss/mondossier/monsousdossiera/fichiertextea:il y a blabla ici
/home/legoss/mondossier/monsousdossiera/fichiertexteb:il y a blabla là
Comme l'indication des chemins n'est pas utile pour ce script, et qu'on y perd en lisibilité, je cherche à les réduire pour n'obtenir que
fichiertextea:il y a blabla ici
fichiertexteb:il y a blabla là
Merci pour votre aide,
Cordialement
Si je pose une question sur le forum, ce n'est pas par paresse ou pour faire faire "mes devoirs"; c'est par ignorance: j'ai 51 berges. Et, par principe, je préfère être traité d'ignare que de fainéant.
Samsung i7-3630QM CPU @ 2.40GHz × 8 - 64 bits - RAM 7,7 Gio - DD 976 Go - Bodhi 6.0.0 Ubuntu 20.04
Allergique au wysiwyg; traitement à vie: Lilypond - LaTeX - txt2tags
Hors ligne
#2 Le 28/05/2014, à 10:48
- tiramiseb
Re : Bash: grep tronquer le chemin du fichier
Salut,
Un petit coup de sed ça devrait le faire ( « sed 's/.*\/\([^\/]*\):/\1:/' » ).
=>
grep -E -i --color=always "blabla" /home/${USER}/mondossier/monsousdossiera/fichiertextea /home/${USER}/mondossier/monsousdossiera/fichiertexteb | sed 's/^.*\/\([^\/]*\):/\1:/'
Une autre possibilité serait de faire une boucle sur la sortie de grep et utiliser basename sur la partie avant le ":", mais je doute très fort que ça soit plus rapide...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#3 Le 28/05/2014, à 10:50
- pingouinux
Re : Bash: grep tronquer le chemin du fichier
Bonjour,
Tu peux éventuellement faire ceci
cd /home/$USER/mondossier/monsousdossiera
grep -E -i --color=always "blabla" fichiertextea fichiertexteb
Hors ligne
#4 Le 28/05/2014, à 10:54
- tiramiseb
Re : Bash: grep tronquer le chemin du fichier
Oui, avec "cd" devant ça simplifie pas mal aussi
... surtout que dans un script ça ne devrait pas poser de problème.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#5 Le 28/05/2014, à 11:03
- tiramiseb
Re : Bash: grep tronquer le chemin du fichier
la commande basename ne convient pas ?
Elle ne peut pas être utilisée telle quelle, il faudrait faire une boucle comme je l'ai indiqué.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#6 Le 28/05/2014, à 13:27
- Le Goss
Re : Bash: grep tronquer le chemin du fichier
Les 2 solutions fonctionnent.
Une différence cependant: celle de pingouinux permet de garder le nom de fichier en couleur (lilas).
Merci pour votre coup de main!
Si je pose une question sur le forum, ce n'est pas par paresse ou pour faire faire "mes devoirs"; c'est par ignorance: j'ai 51 berges. Et, par principe, je préfère être traité d'ignare que de fainéant.
Samsung i7-3630QM CPU @ 2.40GHz × 8 - 64 bits - RAM 7,7 Gio - DD 976 Go - Bodhi 6.0.0 Ubuntu 20.04
Allergique au wysiwyg; traitement à vie: Lilypond - LaTeX - txt2tags
Hors ligne
#7 Le 28/05/2014, à 13:33
- tiramiseb
Re : Bash: grep tronquer le chemin du fichier
Le "cd" est mieux, plus propre et plus rapide, c'est sûr...
Et si en plus tu gardes ton joli lilas...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne