#1 Le 08/09/2016, à 12:17
- Bybeu
[Résolu] Recherche récursive de chaîne via .bash_aliases
Bonjour
Comment faire pour intégrer cette commande dans ~/.bash_aliases pour qu'elle demande le chemin de recherche et la chaîne à rechercher dans les fichiers ?
find /path/to/dir -type f -print0 | xargs -0 grep -li "foo"
J'ai essayé
alias finds="read -p \"Chemin?\" path | read -p \"Chaîne?\" string | find $path -type f -print0 | xargs -0 grep -il \"$string\""
mais ça me liste tous les fichiers sans rien demander comme entrée au clavier
Merci
Dernière modification par Bybeu (Le 08/09/2016, à 13:08)
Hors ligne
#2 Le 08/09/2016, à 12:35
- pingouinux
Re : [Résolu] Recherche récursive de chaîne via .bash_aliases
Bonjour,
Essaye ceci :
alias finds='read -p "Chemin?" path;read -p "Chaîne?" string;find "$path" -type f -print0 | xargs -0 grep -l "$string"'
Hors ligne
#3 Le 08/09/2016, à 13:07
- Bybeu
Re : [Résolu] Recherche récursive de chaîne via .bash_aliases
Excellente, l'idée de remplacer les " par des ' l'a fait marcher et ça économise les \
Et puis y'avait aussi un pataquès avec des | au lieu des ;
C'est mega-vorace en CPU, mais ça marche !
Super Merci
[EDIT]
Je l'ai modifié comme ceci, pour pouvoir restreindre la recherche à certaines formes du nom de fichier
alias finds='read -p "Chemin?" path;read -p "Nom?" name;read -p "Chaîne?" string;find "$path" -type f -name "$name" -print0 | xargs -0 grep -li "$string"'
Dernière modification par Bybeu (Le 08/09/2016, à 13:27)
Hors ligne
#4 Le 08/09/2016, à 13:52
- pingouinux
Re : [Résolu] Recherche récursive de chaîne via .bash_aliases
Ce sont les deux premiers | qui posaient problème, car la commande read ne renvoie rien sur la sortie standard.
Hors ligne