Outils pour utilisateurs

Outils du site


td_-_expressions_regulieres

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édentesRévision précédente
Prochaine révision
Révision précédente
td_-_expressions_regulieres [2019/01/22 15:56] gillestd_-_expressions_regulieres [2022/03/15 15:05] (Version actuelle) – [Lister des fichiers] gilles
Ligne 58: Ligne 58:
 ^ [2] | ''d'' | suppression de l'espace de travail. Exemple : ''sed /toto/d file'' supprime les lignes contenant ''toto'' dans ''file'' | ^ [2] | ''d'' | suppression de l'espace de travail. Exemple : ''sed /toto/d file'' supprime les lignes contenant ''toto'' dans ''file'' |
 ^ [2] | ''D'' | suppression de l'espace de travail jusqu'au premier caractère de fin de ligne (précédé du caractère ''\'' qu'il contient) | ^ [2] | ''D'' | suppression de l'espace de travail jusqu'au premier caractère de fin de ligne (précédé du caractère ''\'' qu'il contient) |
-$[1]$ | \verb|i\| {\em texte| insertion du {\em textesur la sortie standard \\ +^ [1] | ''i\ texte'' | insertion du ''texte'' sur la sortie standard | 
-$[2]$ | \verb|p| | \'ecrit l'espace de travail sur la sortie standard. Exemple : {\tt sed} -n ``/toto/p'' {\em file} n'\'ecrit que les lignes de {\em filecontenant toto \\ +^ [2] | ''p'' écrit l'espace de travail sur la sortie standard. Exemple : ''sed} -n /toto/file'' n'écrit que les lignes de ''file'' contenant ''toto'' | 
-\ & terminaison \\ +^  | terminaison | 
-$[2]$ | \verb|r| {\em file\'ecrit le contenu de {\em fileavant de continuer \\ +^ [2] | ''r file'' écrit le contenu de ''file'' avant de continuer | 
-$[2]$ | \verb|s/regexpr/| \verb|chaine/ind| substitution d'un motif \`a un autre d\'efini au moyen d'expressions r\'eguli\`eres. Les indicateurs sont g : toutes les occurrences,: \'ecrit si une substitution a \'et\'e effectu\'ee, {\em file\'ecriture dans {\em file}. Le contenu est concat\'en\'si une substitution a \'et\'e effectu\'ee\\ +^ [2] | ''s/regexpr/ chaine/ind'' | substitution d'un motif à un autre défini au moyen d'expressions régulières. Les indicateurs sont ''g'' : toutes les occurrences, ''p'' : écrit si une substitution a été effectuée, ''w file'' écriture dans ''file''. Le contenu est concaténé si une substitution a été effectué| 
-$[2]$ | \verb|w| {\em file\'ecrit l'espace de travail dans {\em file}\\ +^ [2] | ''w file'' écrit l'espace de travail dans ''file''| 
-$[2]|  \verb|y/chaine_1/| \verb|chaine_2| & toutes les occurrences des caract\`eres figurant dans cha\^ine\_1 sont remplac\'es par le caract\`ere correspondant (c'est-\`a-dire en m\^eme position) de cha\^ine\_2\\ +^ [2] |  ''y/chaine1/chaine2'' | toutes les occurrences des caractères figurant dans ''chaine1'' sont remplacées par le caractère correspondant (c'est-à-dire en même position) de ''chaine2''| 
-$[2]$ | \verb|!| {\em commandeex\'ecution de la commande sur les lignes dont l'adresse n'est pas dans l'intervalle. \\ +^ [2] | ''! commande'' exécution de la ''commande'' sur les lignes dont l'adresse n'est pas dans l'intervalle. | 
-$[2]$ | \verb|=| Donne le num\'ero de la ligne s\'electionn\'ee sur la sortie standard.\\+^ [2] | ''='' | Donne le numéro de la ligne sélectionnée sur la sortie standard. |
  
  
 +==== Un peu d'entraînement ====
  
 +  * Que fait la commande suivante ?
  
-\section{Un peu d'entra\^inement}+<code bash> 
 +    sed -n '/^[0-9]\+$/p' fich.txt 
 +</code>
  
-Que fait la commande suivante ?+  * Donner le résultat de la commande suivante pour différentes valeurs de ''motif'' :
  
-\begin{verbatim} +<code bash> 
-sed -n '/^[0-9]\+$/p' fich.txt +    echo aabbabbaab | sed $motif 
-\end{verbatim}+</code>
  
-\noindent Donner le r\'esultat de la commande suivante : +<code bash> 
-\begin{verbatim}echo ``aabbabbaab'' | sed $motif\end{verbatim} +    motif='s/[ab]*/x/' 
-pour : +    motif='s/a.*b/y/' 
-\begin{verbatim}motif='s/[ab]*/x/'\end{verbatim} +    motif='s/a.*bb/z/' 
-\begin{verbatim}motif='s/a.*b/y/'\end{verbatim} +    motif='s/a\?b/z/g' 
-\begin{verbatim}motif='s/a.*bb/z/'\end{verbatim} +    motif='s/aab\|ba\|bba/ab/g' 
-\begin{verbatim}motif='s/a\?b/z/g'\end{verbatim} +</code>
-\begin{verbatim}motif='s/aab\|ba\|bba/ab/g'\end{verbatim}+
  
-\noindent donner le r\'esultat des commandes suivantes : +  * Donner le résultat des commandes suivantes :
-\begin{verbatim}echo ``ejkf fed 158e fd'' | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/' \end{verbatim}+
  
-\begin{verbatim}echo ``ejkf fed 158e fd'| sed 's/.*\([0-9]\+\).*/\1/' \end{verbatim} +<code> 
 +    echo "ejkf fed 158e fd" | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/ 
 +    echo "ejkf fed 158e fd" | sed 's/.*\([0-9]\+\).*/\1/'  
 +</code>
  
-\section{Head} 
  
-R\'e\'ecrire la commande head en utilisant sed.+==== HEAD ====
  
-\section{Html}+Réécrire la commande ''head'' en utilisant ''sed''.
  
-\'Ecrire un script qui extrait le titre de toutes les pages html.+==== HTML ====
  
-%\section{To Upper} +Ecrire un script qui extrait le titre de toutes les pages ''html''.
-%\noindent Ecrire une commande qui transforme les caract\`eres du fichier fich.txt en majuscule.+
  
-\section{Cut}+==== A partir d'un fichier ... ====
  
-\'Ecrire une commande qui extrait la premi\`ere colonne du fichier fich.txt. Le caract\`ere de s\'eparation \'etant ':'.+On suppose le fichier suivant ''fich.txt'' qui contient 
  
-D\'eplacer la 1$^{ere}$ colonne en derni\`ere position.+<code> 
 +    Marcel:Michu:16:55:09 
 +    Ghislaine:Verboten:56:13:29 
 +    Raymond:Calbuth:25:67:09 
 +</code>
  
-\section{Date}+  * Ecrire une commande qui transforme les caractéres du fichier ''fich.txt'' en majuscule 
 +  * Ecrire une commande qui extrait la première colonne du fichier ''fich.txt''. Le caractère de séparation est '':''
 +  * Déplacer la colonne de gauche en dernière position.
  
-La fonction date renvoie un r\'esultat de la forme suivante :+==== DATE ====
  
-\begin{verbatim} +La fonction date renvoie un résultat de la forme suivante :
-jeu jan 26 17:26:47 CET 2019 +
-\end{verbatim}+
  
-\'Ecrivez une commande, en utilisant date et sed, permettant d'obtenir le r\'esultat suivant :+<code> 
 +    jeu jan 26 17:26:47 CET 2019 
 +</code>
  
-\begin{verbatim} +Ecrivez une commande, en utilisant ''date'' et ''sed'', permettant d'obtenir le résultat suivant :
-Nous sommes le jeu 26 jan 2019 et il est 17:26:47. +
-\end{verbatim}+
  
-\'Ecrire la commande grep permettant de r\'ecup\'erer dans le fichier fich.txt les lignes contenant des heures valides (format hh:mm:ss).+<code> 
 +    Nous sommes le jeu 26 jan 2019 et il est 17:26:47. 
 +</code>
  
-\section{Un peu de grep}+Ecrire la commande ''grep'' permettant de récupérer dans le fichier ''fich.txt'' les lignes contenant des heures valides (format ''hh:mm:ss'').
  
-Que font les commandes suivantes ([      ] contient un espace et une tabulation) : +==== Un peu de GREP ====
-\begin{verbatim} +
-grep -c '^[      ]*$' fich.txt +
-grep -c '^[^      ]\+$' fich.txt +
-grep -c '[^      ]' fich.txt +
-grep -n -v '[^      ]\+$' fich.txt +
-\end{verbatim}+
  
-\section{Update}+Que font les commandes suivantes ? (''     ]'' contient un espace et une tabulation) :
  
-\'Ecrivez une commande qui liste les noms de r\'epertoires commen{\c c}ant par la lettre a.+<code bash> 
 +    grep -E -c '^[      ]*$fich.txt 
 +    grep -E -'^[^      ]+$' fich.txt 
 +    grep -E -'[^      ]' fich.txt 
 +    grep -E -n -v '[^      ]+$' fich.txt 
 +</code>
  
-\bigskip+==== Lister des fichiers ====
  
-\'Ecrivez la commande permettant d'obtenir l'affichage suivant :+La commande ''ls -l'' produit la sortie suivante
  
-\begin{verbatim} +<code> 
-fichier poly-se.aux modifie ce jour a 17:00 +    drwxr-xr-x  4 gilles  staff  128 22 jan 11:41 dir-1 
-fichier poly-se.dvi modifie ce jour a 17:24 +    drwxr-xr-x  2 gilles  staff   64 22 jan 14:41 dir-2 
-fichier poly-se.log modifie ce jour a 17:56 +    -rw-r--r--  1 gilles  staff    0 22 jan 22:39 file-1 
-fichier poly-se.ps modifie ce jour a 17:01 +    -rw-r--r--  1 gilles  staff    0 22 jan 08:18 file-2 
-fichier poly-se.toc modifie ce jour a 17:56 +    -rw-r--r--  1 gilles  staff    0 22 jan 07:03 mon-script-exemple.sh 
-fichier td_sed.tex modifie ce jour a 17:56 +</code>
-\end{verbatim}+
  
-\section{Liste des extensions}+  * Modifiez cette commande afin d'obtenir :
  
-\begin{verbatim} +<code> 
-$ls +    dir-1 modifie a 11:41 
-abc  ab.o  ab.tar.gz  a.c  a.o  bcabdc.c  ccabdc.zip +    dir-2 modifie a 14:41 
-\end{verbatim}+    file-1 modifie a 22:39 
 +    file-2 modifie a 08:18 
 +    mon-script-exemple.sh modifie a 07:03 
 +</code> 
 + 
 +==== Liste des extensions ==== 
 + 
 +<code bash> 
 +    $ls 
 +    abc  ab.o  ab.tar.gz  a.c  a.o  bcabdc.c  ccabdc.zip 
 +</code>
  
 Ecrivez la commande permettant d'obtenir l'affichage suivant : Ecrivez la commande permettant d'obtenir l'affichage suivant :
-\begin{verbatim} +<code bash> 
-.c +    .c 
-.gz +    .gz 
-.o +    .o 
-.zip +    .zip 
-\end{verbatim}+</code>
td_-_expressions_regulieres.1548172574.txt.gz · Dernière modification : 2019/01/22 15:56 de gilles