| 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] nekan | bash_base_4 [2022/06/13 15:24] (Version actuelle) – nekan |
|---|
| | ''${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} |
| 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% >| |
| |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~~ |