bash_base_4

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
bash_base_4 [2021/07/22 17:15] – [Manipulation via une variable] nekanbash_base_4 [2022/06/13 15:24] (Version actuelle) nekan
Ligne 22: Ligne 22:
 |  ''${TEXT,,}''  |Mise en minuscule.  |<sxh bash>echo ${TEXT,,} |  ''${TEXT,,}''  |Mise en minuscule.  |<sxh bash>echo ${TEXT,,}
 chaîne</sxh>| chaîne</sxh>|
-|  ''${TEXT: +n}''  |Récupère les n premiers caractères.  |<sxh bash>echo ${TEXT: +2}+|  ''${TEXT: +n}''  |Supprime les n premiers caractères.  |<sxh bash>echo ${TEXT: +2}
 Ch</sxh>| Ch</sxh>|
-|  ''${TEXT:: +n}''  |Supprime les n premiers caractères.  |<sxh bash>echo ${TEXT:: +2}+|  ''${TEXT:: +n}''  |Récupère les n premiers caractères.  |<sxh bash>echo ${TEXT:: +2}
 aîne</sxh>| aîne</sxh>|
 |  ''${TEXT: -n}''  |Récupère les n derniers caractères.  |<sxh bash>echo ${TEXT: -2} |  ''${TEXT: -n}''  |Récupère les n derniers caractères.  |<sxh bash>echo ${TEXT: -2}
Ligne 47: Ligne 47:
 echo ${TEXT/%a/o} echo ${TEXT/%a/o}
 anno</sxh>| anno</sxh>|
 +|  ''${TEXT<nowiki>%%[[</nowiki>:cntrl:]]}''  |Supprime les caractères de contrôle en fin de chaîne.  |<sxh bash>TEXT="Test\r\n"
 +echo ${TEXT%%[[:cntrl:]]}
 +Test</sxh>|
 |||| ||||
  
-===== awk =====+===== La commande awk =====
  
   * Référence : [[https://man7.org/linux/man-pages/man1/awk.1p.html|Manuel de la commande awk]]   * Référence : [[https://man7.org/linux/man-pages/man1/awk.1p.html|Manuel de la commande awk]]
  
-''awk'' est un puissant utilitaire permettant entre autre la manipulation de texte. Avant de commencer à utiliser ''awk'', il faut connaître quelques points importants :+''awk'' est un puissant utilitaire permettant la manipulation de texte dans une chaîne de caractère et/ou dans un fichier texte. Avant de commencer à utiliser ''awk'', il faut connaître quelques points importants :
   * ''awk'' manipule des champs de texte et non des caractères.   * ''awk'' manipule des champs de texte et non des caractères.
   * Le séparateur de champs par défaut est un espace vide pouvant être un espace simple, multiple, une tabulation et/ou un retour à la ligne.   * Le séparateur de champs par défaut est un espace vide pouvant être un espace simple, multiple, une tabulation et/ou un retour à la ligne.
-  * ''awk'' est un interpréteur de commandes. Son utilisation sera toujours de type ''awk '//commande//%%'%%''.+  * ''awk'' est un interpréteur de commandes. Son utilisation sera toujours de type ''awk '//script//%%'%%''.
   * Chaque champ est défini par le caratère ''$'' et numéroté à partir de 1. Ainsi, le premier champs est ''$1'', le second ''$2'', etc... Le champ ''$0'' correspond alors à la ligne complète.   * Chaque champ est défini par le caratère ''$'' et numéroté à partir de 1. Ainsi, le premier champs est ''$1'', le second ''$2'', etc... Le champ ''$0'' correspond alors à la ligne complète.
 +  * Utilisé pour délimité le script interprété par ''awk'', Le caractère ''%%'%%'' ne peux être utilisé directement dans ce dernier. Pour l'utiliser, il on peux utilisé la chaîne ''"'"'"'"'' ou bien ''"\047"''.
  
-Quelques commandes de ''awk'' :+Quelques exemple de commandes avec ''awk'' :
  
 |< 100% 50% 50% >| |< 100% 50% 50% >|
Ligne 75: Ligne 79:
 |Afficher l'avant-dernier champ.  |<sxh bash>echo "a b c d" | awk '{print $(NF-1)}' |Afficher l'avant-dernier champ.  |<sxh bash>echo "a b c d" | awk '{print $(NF-1)}'
 c</sxh>| c</sxh>|
-|Afficher le 2<sup>ème</sup> champ en définissant le séparateur de champ comme étant le caractère '';'' |<sxh bash>echo "a b;c d" | awk 'BEGIN { FS = ";" } ; {print $2}'+|Afficher le 2<sup>ème</sup> champ en définissant le séparateur de champ comme étant le caractère '';'' |<sxh bash># Ecriture principale 
 +echo "a b;c d" | awk 'BEGIN { FS = ";" } ; {print $2}' 
 +c d 
 +# Autre écriture possible 
 +echo "a b;c d" | awk -F ";" '{print $2}'
 c d</sxh>| c d</sxh>|
 |Afficher le 2<sup>ème</sup> caractère. En définissant le séparateur de champ par une chaîne vide, chaque caractère est alors défini comme un champ séparé des autres.  |<sxh bash>echo "ab;cd" | awk 'BEGIN { FS = "" } ; {print $2}' |Afficher le 2<sup>ème</sup> caractère. En définissant le séparateur de champ par une chaîne vide, chaque caractère est alors défini comme un champ séparé des autres.  |<sxh bash>echo "ab;cd" | awk 'BEGIN { FS = "" } ; {print $2}'
 b</sxh>| b</sxh>|
  
 +Des exemples bien plus complexes sont disponibles sur les sites suivants :
 +  * [[https://sites.google.com/site/diezone/awk-1/bou|getimax]]
 +  * [[http://www.bruno-garcia.net/www/Unix/Docs/awk.html|Site de Bruno GARCIA]]
 +
 +===== La commande sed =====
 +
 +  * [[http://manpagesfr.free.fr/man/man1/sed.1.html|Manuel de la commande sed]]
 +
 +''sed'' est un autre utilitaire de manipulation de chaîne de caractère et/ou de fichier texte.
 +
 +Quelques exemple de commandes avec ''sed'' :
 +
 +|< 100% 70% 30% >|
 +^  Manipulation  ^  Syntaxe et exemple  ^
 +|Remplace toutes les occurrences du texte ''abc'' par ''xyz'' dans le fichier //file.txt//  |<sxh bash>sed -i 's/abc/xyz/g' file.txt</sxh>|
 +|Commente toutes les lignes d'un fichier.   |<sxh bash>sed -i 's/^/#/g' file.txt</sxh>|
 +|Décommente toutes les lignes d'un fichier.   |<sxh bash>sed -i 's/^#//g' file.txt</sxh>|
 +
 +
 +----
 +
 +
 +~~DISCUSSION~~
  • bash_base_4.1626966944.txt.gz
  • Dernière modification : 2021/07/22 17:15
  • de nekan