Recherches et différences

Il peux être utile de chercher un morceau de texte dans un grand nombre de fichier. Nous allons également voir comment la commande diff peux nous servir pour comparer le contenu de dossiers. h

Recherche de pattern

trouver. | Xargs grep 'chaîne'-sl

ou string est le texte à chercher. Le -s est pour sommaire et ne montre pas les warning du type grep: ./directory-name: Is a directory

xargs permet le découpage de l'entrée standard en arguments à passer aux commandes suivantes ou précédentes en fonction

Le -l est pour la liste, qui montre juste le nom du fichier et pas tout le résultat corresponds.

Résultat de la commande dans le répertoire courant :

. / Javascript_open_new_window_form.php

. / Excel_large_number_error.php

...

Filtrer sur le nom du fichier (ici fini par php) : 

trouver. -Iname '* php' | xargs grep 'chaîne'-sl

Les fichiers dont les données ont été modifiées il y a n*24 heures.: 

trouver. -Iname '* php'-mtime -1 | grep xargs 'chaîne'-sl

Les fichier modifier aujourd'hui: 

trouver. -Iname '* php'-mtime 1 | xargs grep 'chaîne'-sl

Utilisation de diff

La comande diff permet d'afficher les différences entre deux fichiers mais également entre deux dossiers. Voici quelques les options qui me sont le plus utiles : 

 

-a   Traiter tous les fichiers comme du texte, et les comparer ligne-à-ligne, même s'ils semblent contenir des données binaires.

-b   Ne pas tenir compte des différences concernant des espaces blancs.

-B   Ne pas tenir compte des différences qui concernent des lignes blanches.

-i     Ignore les différences entre majuscules et minuscules.

-q    Indiquer seulement si les fichiers sont différents, pas les différences elles-mêmes.

-r    Lorsque l'on compare des répertoires, comparer également tous les sous-répertoires récursivement.

 

Usage : 

diff -abBiqr <path1> <pat2>