Bash - Petit script de recherche

Pour faire une recherche dans un répertoire nommé rep, avec des fichiers d’extention .md

Script

Recherche basique

Dans votre .bashrc, créer la fonction suivante, il s’agit d’un grep couplé à un sort. Le $@ permet de passer des arguments dans la fonction :

# Fonction de recherche

srh () {

grep -R --color "$@" /chemin/vers/le/répertoire | sort

}

Recherche évoluée

Une version plus évoluée de cette fonction, avec sed et awk, le “µ” désigne le caractère de remplacement :

# Fonction de recherche

srh () {

search_raw=$(grep -R --color "$@" /chemin/vers/le/rep | sed "s/.*\/rep\//rep\//g" | sort);
search_pretty=$(echo "${search_raw}" | sed "s/\.md:/.mdµ/g" | awk -F "µ" '{ print $1," - ",$2 }')
echo ${search_pretty}"

}

Recherche évoluée version artistique

En y mettant un peu de couleurs :

# Fonction de recherche

srh () {

search_raw=$(grep -R --color "$@" /chemin/vers/le/rep | sed "s/.*\/rep\//rep\//g" | sort);
search_pretty=$(echo "${search_raw}" | sed "s/\.md:/.mdµ/g" | awk -F "µ" '{ print "| \033[0;1;36m" $1,"\033[0;1;37m → ",$2 "\n"}')
echo -e "\n\033[0;1;34m--------------- RESULTATS --------------- \n\n\033[0;1;37m${search_pretty}"

}

Lancement

Pour recharger le fichier .bashrc

# source .bashrc

Pour vérifier la fonction :

# type srh

srh is a function
srh ()
{
// contenu de la fonction
}

Pour tester votre fonction :

# srh "Mots clés"

Documentation

MAN de bash

Remerciements

midorino3142

Merci à midorino3142


> Partager <