Le but du projet est de réaliser une requête Shell (type : Bash) permettant, à terme, d'identifier les fichiers dans un répertoire correspondant à un un pattern de fichier choisi et possédant au moins une ligne avec un mot clé recherché.
Le but de cet exercice est d'appliquer certaines fonctions Shell vu en cours ainsi que les principes fondamentaux du fonctionnement de Git sur Github par exemple.
Pour créer le script Bash nécessaire au projet, j'ai dû créer trois codes modifiés. Un premier script renvoyant le chemin du dossier recherché. Un second script renvoyant un pattern de fichier préalablement inscrit en ligne de commande par un paramètre. Enfin un troisième script permettant l'insertion d'un troisème paramètre en ligne de commande nous permettant d'identifier les fichiers répondant à ces deux conditions. L'aboutissement du script final est dans la continuité de chacun des scripts précédemment crées.
Dans le script final crée, il suffit simplement d'exécuter le script en ligne de commande de telle façon : ./search_fichiers.sh
avec au choix 0, 1 ou 2 paramètres. Sans paramètre, on retrouvera le 1er script, avec 1 le deuxième et avec 2 le troisième.
Exemple : la commande : ./search_fichiers.sh et*.txt bon*our
nous renverra les chemins des fichiers suivant le pattern "et*.txt" (sensible à la casse) et possédant au moins une fois le mot "bon*our" (insensible à la casse) dans son contenu.
./search_fichiers.sh et*.txt bonj$ur
Bonjour sorbonne, on est actuellemnt le : 29/11/2019 et il est : 00:13 . Il fait froid, il est donc temps de partir en vacs mais pas avant cet exercice
A quel répertoir souhaitez vous accéder ? Documents
Voici le répertoire : Documents
/home/sorbonne/Documents/etats2.txt
/home/sorbonne/Documents/etats.txt
/home/sorbonne/Documents/etAts2 .txt
Création d'une nouvelle branche git branch nv_branche
sur le repertoire git où l'on travaille.
Création ou modification du script sur la branche créée. Une fois que la requête réalisée, on applique git add ****.sh
pour garder le projet dans la branche secondaire et git commit -m "commentaire"
afin de soumettre au repo.
Une fois le fichier commité, on peut l'envoyer ensuite sur Github, plateforme collaborative, permettant à d'autres d'en profiter ou d'améliorer celui-ci. Il suffit dès lors d'appliquer un git push -u origin <branche_actuelle>
. Il ne reste plus qu'à rentrer identifiant et MDP puis le fichier est envoyé sur Github.
Le fichier envoyé sur Github, il faut amaintenant le valider, dans l'onglet pull request, on accepte la modification et on merge la branche créée avec la modification à la branche Master. Le tour est joué et la modification est présente sur Github. (On peut y voir tout l'historique des modifications antérieures).
POur enregister les modifications effectuées en local, il ne reste plus qu'a sortir de la branche "nv_branche" avec la commande git checkout master
pour retrourner sur la branche master et enfin effectuer une fusion entre les 2 branches avec un git merge nv_branche
Il est possible que la ligne de commande ne fonctionne pas dorectement car il est possible que les droits ne soient pas octroyer, il suffit alors juste de tapper la comande chmod x+u search_fichier.sh
Reprendre la commande grep -Rli --include="$1" "$2"
qui semble être plus stable que celle utilisée ici. De plus le script avec cette commande dans le fichier home fonctionne aussi bien avec un pattern comme et*.txt qu'un fichier brut etats.txt et qu'un fichier non défini tel que *.txt