logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:systeme:grep [20/06/2011 20:17]
smolski
doc:systeme:grep [14/07/2014 22:36]
smolski [grep]
Ligne 1: Ligne 1:
-===== GREP : Recherche de caractères dans des fichiers textes ​ ===== +====== grep  ======
-Voyez aussi là :+
  
-http://www.ac-creteil.fr/reseaux/systemes/linux/shell-scripts/filtres.html]+(//testé// - **smolski** 18/10/2012) Le retour sur le forum est ici : 
 +  * [[http://debian-facile.org/viewtopic.php?​id=1039 | Lien vers le forum concernant ce tuto]] N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs ! 
 +  * Objet : filtre grep 
 +  * Niveau requis : DÉBUTANT 
 +  * Commentaires : // Recherche de caractères dans des fichiers textes. ​// 
 +  * Débutant, à savoir : 
 +[[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
  
-C'est des supers pour expliqueravec des TP et tout... Merci à toute leur équipe !+Le programme grep explore un ou une série de fichiers d'un ou plusieurs répertoires à la recherche de texte filtrés par une expression régulière donnée (//des lettres, des chiffres//... ).
  
-Et puis là : +===== Introduction =====
- +
-<note important>​Aie ce lien n'​existe plus : http://​w3.uqo.ca/​DOC/​unx_grep.html</​note>​ +
- +
-Le programme grep explore un ou une série de fichiers d'un ou plusieurs répertoires à la recherche de texte filtrés par une expression régulière donnée (//des lettres, des chiffres//​... ).+
  
-Son nom vient de la contraction Get Regular Expression Print, Print signifiant l'​affichage.+L'​acronyme((acronyme : Sigle pouvant être prononcé comme un mot. Eh oui !)) grep vient de la contraction ​de **Get Regular Expression Print**//Print// signifiant l'​affichage.
  
 ===== TP01 ===== ===== TP01 =====
Ligne 20: Ligne 21:
 Créez un répertoire test1 avec un fichier nommé essai.txt comportant des noms et prénoms avec la commande [[cat]] : Créez un répertoire test1 avec un fichier nommé essai.txt comportant des noms et prénoms avec la commande [[cat]] :
 <code bash> <code bash>
-mkdir test1 +mkdir test1</​code>​ 
-$ cat test1/essai.txt ​<<EOF</​code>​ + 
-et rédigez : +Créez le fichier(([[:​doc:​systeme:​touch]])) essai.txt ainsi : 
-<​code>​tartempion eric+<code bash> 
 +touch essai.txt</​code>​ 
 + 
 +Et rédigez(([[:​doc:​systeme:​cat]])) ce fichier **test1/​essai.txt** ainsi 
 +<​code ​bash> 
 +cat > test1/​essai.txt <<​EOF 
 + 
 +tartempion eric
 greg lucien greg lucien
 howard charles howard charles
Ligne 29: Ligne 37:
 EOF</​code>​ EOF</​code>​
  
-Utilisez la commande [[cat]] pour vérifier : +Utilisez la commande [[:​doc:​systeme:​cat]] pour en vérifier ​le contenu ​
-<code bash>cat test1/​essai.txt ​</​code>​ +<code bash>cat test1/​essai.txt 
-<​code>​tartempion eric+ 
 +tartempion eric
 greg lucien greg lucien
 howard charles howard charles
-santiago germaine +santiago germaine</​code>​
-</​code>​+
  
-Comme précédemment,​ créons un second répertoire nommé ''​test2''​ dans lequel nous créons le fichier **adresse.c** contenant les chaînes de caractères ​ainsi :+De la même façon que précédemment,​ créons un second répertoire nommé ''​test2''​ dans lequel nous créons le fichier **adresse.c** contenant les chaînes de caractères ​suivantes ​:
 <code bash> <code bash>
-$ mkdir test2 +cat > test2/​adresse.c <<​EOF 
-cat > test2/​adresse.c <<EOF</​code>​ +25, rue de la source
-<​code>​25, rue de la source+
 5bis, avenue linux 5bis, avenue linux
 3358, street gandhi 3358, street gandhi
Ligne 48: Ligne 55:
 On vérifie les deux fichiers d'un coup ainsi : On vérifie les deux fichiers d'un coup ainsi :
 <code bash> <code bash>
-cat ~/​test1/​essai.txt ~/​test2/​adresse.c</​code>​+cat ~/​test1/​essai.txt ~/​test2/​adresse.c</​code>​
 <​code>​tartempion eric <​code>​tartempion eric
 greg lucien greg lucien
Ligne 60: Ligne 67:
  
 <note important>​Si l'on omet __le nom de fichier__ à traiter, ''​grep''​ agit sur le fichier d'​entrée (**stdin**). \\  <note important>​Si l'on omet __le nom de fichier__ à traiter, ''​grep''​ agit sur le fichier d'​entrée (**stdin**). \\ 
-Voir commande : [[PWD]]+Voir commande : [[:​doc:​systeme:​pwd]]
 </​note>​ </​note>​
  
Ligne 116: Ligne 123:
 L'​option ''​-c''​ ne donne que le nombre de lignes où la chaîne apparaît __sans afficher ces lignes__. L'​option ''​-c''​ ne donne que le nombre de lignes où la chaîne apparaît __sans afficher ces lignes__.
  
-==== Expressions ​régulières ​====+===option -m === 
 +L'​option ''​-m N occurrence''​ : permet d'​arrêter ​ de  lire  un  fichier ​ après ​ avoir  trouvé ​ N ligne(s) avec occurrence. 
 + 
 +==== Expressions ​rationnelles ​====
  
-Les expressions ​régulières, ou [[regexp]], peuvent remplacer la chaîne de caractères dans l'​argument du programme grep.+Les expressions ​rationnelles, ou [[:​doc:​programmation:​shell:​regexp]], peuvent remplacer la chaîne de caractères dans l'​argument du programme grep.
  
 Voici des exemples : Voici des exemples :
Ligne 132: Ligne 142:
 **Nota :** **Nota :**
  
-Programme grep avec expressions ​régulières ​:+Programme grep avec expressions ​rationnelles ​:
  
 Il faut toutefois prendre un soin particulier lorsque l'on utilise les caractères spéciaux : \\ Il faut toutefois prendre un soin particulier lorsque l'on utilise les caractères spéciaux : \\
Ligne 142: Ligne 152:
 <​code>​test1/​essai.txt:​2:​tartempion eric</​code>​ <​code>​test1/​essai.txt:​2:​tartempion eric</​code>​
  
-Notez que les champs des lignes produites par ''​grep''​ (le nom du fichier, le numéro de ligne et la ligne elle-même) sont délimitées par des deux points "​**:​**",​ ce qui leur permet d'​être traités à postériori par le programme awk dans des **TUBES**.+Notez que les champs des lignes produites par ''​grep''​ (le nom du fichier, le numéro de ligne et la ligne elle-même) sont délimitées par des deux points "​**:​**",​ ce qui leur permet d'​être traités à postériori par le programme awk dans des [[:​doc:​programmation:​shell:​pipe | TUBES]].
  
 Pour plus d'​information sur la commande grep, lancez : Pour plus d'​information sur la commande grep, lancez :
-    man grep.+    ​man grep.
doc/systeme/grep.txt · Dernière modification: 30/11/2020 17:35 par JoBisou

Pied de page des forums

Propulsé par FluxBB