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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes [15/08/2014 18:34] Hypathie |
utilisateurs:hypathie:tutos:erb-et-ere-par-le-contexte-des-commandes [01/10/2023 11:39] (Version actuelle) |
||
---|---|---|---|
Ligne 68: | Ligne 68: | ||
- | ====Métacaractère ou caractère d'expression rationnelle ?==== | + | =====Métacaractère ou caractère d'expression rationnelle ?===== |
Les commandes de recherche et d'édition de fichiers peuvent utiliser métacaractères et les caractères servant aux expressions rationnelles. | Les commandes de recherche et d'édition de fichiers peuvent utiliser métacaractères et les caractères servant aux expressions rationnelles. | ||
Ligne 102: | Ligne 102: | ||
</note> | </note> | ||
- | ===grep=== | + | ====grep==== |
+ | <note tip> | ||
+ | **__Rappel sur grep__**\\ | ||
+ | * __**Synopsis**__ : | ||
+ | |||
+ | grep [OPTIONS] MOTIF [FICHIER...] | ||
+ | grep [OPTIONS] [-e MOTIF | -f FICHIER] [FICHIER...] | ||
+ | |||
+ | **''grep toto ~/Dossier/liste.txt''**\\ | ||
+ | **''grep "toto" ~/Dossier/liste.txt''** | ||
+ | >Les guillemets ne sont pas obligatoires pour un mot | ||
+ | > Recherche le motif ''toto'' dans le fichier "liste.txt" | ||
+ | |||
+ | **''grep toto ~/Dossier/liste.txt /Documents/téléphone.txt''**\\ | ||
+ | > Recherche le motif ''toto'' dans les fichiers "liste.txt" et "téléphone.txt". | ||
+ | |||
+ | **''grep "toto et titi" ~/Dossier/liste.txt" ''** | ||
+ | > Les guillemets sont obligatoires lorsque MOTIF est une chaîne de caractères espacés d'un ou plusieurs espaces. | ||
+ | |||
+ | * __**Options les plus courantes**__ : | ||
+ | |||
+ | |||
+ | * -v affiche les lignes ne contenant pas MOTIF | ||
+ | * -c compte le nombre de lignes contenant MOTIF | ||
+ | * -n chaque ligne contenant MOTIF est numérotée | ||
+ | * -r ou -R (récursif) recherche MOTIF dans tous les fichiers et sous-répertoires | ||
+ | * -x ligne correspondant exactement à MOTIF | ||
+ | * -l (par défaut) affiche le nom des fichiers qui contiennent MOTIF | ||
+ | * -f (par défaut) pour plusieurs fichiers | ||
+ | * -w recherche du MOTIF exact et non approchant | ||
+ | |||
+ | **''grep -r -w Toto ~/''** | ||
+ | |||
+ | </note> | ||
* __L'étoile__ : | * __L'étoile__ : | ||
Imaginons qu'on cherche __tous les fichiers commençant par "t"__ contenant le caractère "e".\\ | Imaginons qu'on cherche __tous les fichiers commençant par "t"__ contenant le caractère "e".\\ | ||
Ligne 116: | Ligne 149: | ||
</code> | </code> | ||
- | > option -l : Ne pas afficher les résultats normaux. À la place, indiquer le nom des fichiers pour lesquels des résultats auraient été affichés. | ||
- | > option -R : Lire récursivement tous les fichiers à l'intérieur de chaque répertoire. | ||
>Le motif entre guillemets ("e") concerne la recherche dans le contenu du fichier. C'est là qu'il faut placer l'expression rationnelle. Le motif "e" en est d'ailleurs une. | >Le motif entre guillemets ("e") concerne la recherche dans le contenu du fichier. C'est là qu'il faut placer l'expression rationnelle. Le motif "e" en est d'ailleurs une. | ||
>Le caractère "*" est le métacaractère qui signifie "__nom de fichier__ commençant par "Toto" avec n'importe quel autre caractère après ou rien après. | >Le caractère "*" est le métacaractère qui signifie "__nom de fichier__ commençant par "Toto" avec n'importe quel autre caractère après ou rien après. | ||
Ligne 156: | Ligne 187: | ||
</code> | </code> | ||
- | === find=== | + | ==== find==== |
+ | <note tip> | ||
+ | **__Rappel sur find__** : | ||
+ | |||
+ | find <répertoire de recherche> <critères de recherche> | ||
+ | |||
+ | **__Sans critère de recherche__** find affiche les fichiers du ou des répertoire(s) de recherche qu'on lui a donné en argument :\\ | ||
+ | |||
+ | ''find /home/hypathie/Documents /home/hypathie/Bureau'' | ||
+ | |||
+ | |||
+ | __**Les critères de recherche**__ : | ||
+ | Utiliser les guillemets dans le critère de recherche est une bonne habitude à prendre car cela permet d’éviter les problèmes avec les caractères génériques du Shell : ''find ~ -name "*.mp3"'' | ||
+ | * **-name** recherche sensible à la casse sur le nom du fichier | ||
+ | * **-iname** recherche non sensible à la casse sur le nom du fichier | ||
+ | * **-perm** recherche sur les droits d'accès du fichier((''-perm u=rwx'' (0700) ; ''-perm -u=r'' (-0400) => u=r ou u=rw ou u=rx ou u=rwx ou u=r,g=x… ; ''-perm /u=w,g=w,o=w'' => u=w ou g=w ou o=w ou u=w,g=w,o=w ou u=rw,g=rwx…)) | ||
+ | * **-links** recherche sur le nombre de liens du fichier | ||
+ | * **-user** recherche sur le propriétaire du fichier | ||
+ | * **-group** recherche sur le groupe auquel appartient le fichier | ||
+ | * **-type** recherche sur le type (''d''=répertoire, ''c''=caractère, ''f''=fichier normal, ''l''=lien, ''s''=socket)((lorsque l’on ne précise pas le -type à rechercher, la commande find recherchera des fichiers, des dossiers, des sockets, etc)) | ||
+ | * **-size** recherche sur la taille du fichier ''M'' pour Méga Octets, ''G'' pour Giga Octets, ''c'' pour octets((+10M ; -10M ; 10M)) ou en nombre de blocs (1 bloc=512 octets) | ||
+ | * **-atime** recherche par date de dernier accès en lecture du fichier | ||
+ | * **-mtime** recherche par date de dernière modification du fichier | ||
+ | * **-ctime** recherche par date de création du fichier | ||
+ | |||
+ | Voir : [[http://qanuq.com/exploitez-la-puissance-de-la-commande-find/]] | ||
+ | </note> | ||
//Depuis le répertoire personnel ou le répertoire "~ERetCMD" ou même le répertoire "~/ERetCMD/Dossier/"// | //Depuis le répertoire personnel ou le répertoire "~ERetCMD" ou même le répertoire "~/ERetCMD/Dossier/"// | ||
Ligne 182: | Ligne 240: | ||
</code> | </code> | ||
- | ===locate === | + | ====locate ==== |
+ | <note tip> | ||
+ | **__Rappel sur locate__**\\ | ||
+ | |||
+ | locate <options> <vos critères de recherche> | ||
+ | |||
+ | **Options:**\\ | ||
+ | |||
+ | * **-i** pour ignorer la casse majuscule ou minuscule | ||
+ | * **-c** afficher seulement le nombre de résultat | ||
+ | * **-n <n>** N'affiche que les n premiers résultats. | ||
+ | |||
+ | </note> | ||
* __Préparation :__ | * __Préparation :__ | ||
Ligne 223: | Ligne 293: | ||
</code> | </code> | ||
- | ===sed=== | + | ====sed==== |
+ | <note tip> | ||
+ | Rappel sur sed\\ | ||
+ | * Adressages | ||
+ | |||
+ | |||
+ | </note> | ||
* __sed utilise aussi les deux :__ | * __sed utilise aussi les deux :__ | ||
- | Vérifier qu'on est bien au niveau du "~/ERetCMD/Dossier/" | + | Vérifier qu'on est bien au niveau du "~/ERetCMD/Dossier/" |
+ | |||
+ | <code user>cd ~/ERetCMD/Dossier/</code> | ||
<code user>sed -r '/(a|e).*/s/a/A/' ti*</code> | <code user>sed -r '/(a|e).*/s/a/A/' ti*</code> | ||
Ligne 246: | Ligne 324: | ||
</code> | </code> | ||
- | ===awk === | + | ====awk ==== |
* __De même encore pour awk :__ | * __De même encore pour awk :__ | ||
Ligne 1515: | Ligne 1593: | ||
</code> | </code> | ||
- | ===[[:class:]] + quantificateur { }=== | + | ===<nowiki>[[:class:]]</nowiki> + quantificateur { }=== |
<code user>grep "[[:digit:]]\{4\}" liste-class</code> | <code user>grep "[[:digit:]]\{4\}" liste-class</code> | ||
Ligne 1750: | Ligne 1828: | ||
- | =====Raccourcis et programmes d'édition===== | + | =====Séquences d'échappement et programmes d'édition===== |
+ | |||
+ | Sur les séquences d'échappement POSIX\\ voir : [[http://fr.wikipedia.org/wiki/Expression_rationnelle#S.C3.A9quences_d.E2.80.99.C3.A9chappement_POSIX]]\\ | ||
+ | À ne pas confondre avec les classes abrégées supportées uniquement par les regex PCRE\\ voir : [[http://en.wikipedia.org/wiki/Regular_expression#Examples]] | ||
- | Les raccourcis ne sont pas posix | ||
====sed ==== | ====sed ==== |