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 | ||
|
tips_informatiques:linux:shell:fichiers_dossiers:fichiers_dossiers [2010/06/02 09:07] nico |
tips_informatiques:linux:shell:fichiers_dossiers:fichiers_dossiers [2013/09/20 15:52] (Version actuelle) nico |
||
|---|---|---|---|
| Ligne 43: | Ligne 43: | ||
| </code> | </code> | ||
| - | Incluant les sous répertoires et n'affichant que les fichiers contenant le terme "DatabaseAuthenticatorAction": | + | Incluant les sous répertoires et n'affichant que les fichiers contenant le terme "monTexte": |
| <code bash> | <code bash> | ||
| Ligne 61: | Ligne 61: | ||
| </code> | </code> | ||
| + | Trouver les fichiers créés/modifiés depuis 20 jours: | ||
| + | <code bash> | ||
| + | for i in {0..20}; do find . -ctime $i -type f; done | ||
| + | </code> | ||
| ====== Rechercher un terme dans un fichier ====== | ====== Rechercher un terme dans un fichier ====== | ||
| Ligne 86: | Ligne 90: | ||
| </code> | </code> | ||
| + | __grep récursif sous Unix / Solaris__ | ||
| + | |||
| + | <code bash> | ||
| + | find . -type f -print | xargs grep monTexte | ||
| + | </code> | ||
| Ligne 249: | Ligne 258: | ||
| Faire ensuite de même en inversant les chemins (balladeur --> pc) | Faire ensuite de même en inversant les chemins (balladeur --> pc) | ||
| + | |||
| + | __Copier un dossier contenant des liens symboliques__ | ||
| + | |||
| + | utiliser l'option **-a** qui copie le dossier en temps qu'archive | ||
| + | |||
| + | <code bash> | ||
| + | rsync -avz /path/to/folder1 /path/to/folder2 | ||
| + | </code> | ||
| __Problème de l'heure d'été/hiver:__ | __Problème de l'heure d'été/hiver:__ | ||
| Ligne 373: | Ligne 390: | ||
| $uudecode to_decode.txt | $uudecode to_decode.txt | ||
| $less to_decode.txt | $less to_decode.txt | ||
| + | </code> | ||
| + | |||
| + | |||
| + | __Solution alternative en Python:__ | ||
| + | |||
| + | <code bash> | ||
| + | python -c "print __import__('base64').b64decode('c2FsdXQ=')" | ||
| </code> | </code> | ||
| Ligne 406: | Ligne 430: | ||
| iconv -f ISO8859-1 -t UTF-8 $i > temp.tmp && cat temp.tmp > $i && rm temp.tmp | iconv -f ISO8859-1 -t UTF-8 $i > temp.tmp && cat temp.tmp > $i && rm temp.tmp | ||
| done | done | ||
| + | </code> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====== Repérer les caractères non ASCII dans un fichier ====== | ||
| + | |||
| + | __OS:__ Linux | ||
| + | |||
| + | __Problème:__ | ||
| + | |||
| + | Comment repérer dans un fichier les caractères qui ne sont pas des caractères ASCII ? | ||
| + | |||
| + | __Solution:__ | ||
| + | |||
| + | En utilisant une option de //cat//: | ||
| + | |||
| + | <code bash> | ||
| + | cat -v my_file.txt | grep "M-" | ||
| + | </code> | ||
| + | |||
| + | |||
| + | |||
| + | ====== Remplacer des caractères UTF-8 affichés en ISO-8859-1 dans un fichier ====== | ||
| + | |||
| + | __OS:__ Linux | ||
| + | |||
| + | __Problème:__ | ||
| + | |||
| + | Comment remplacer des caractères UTF-8 affichés en ISO-8859-1 dans un fichier ? | ||
| + | |||
| + | C'est à dire comment retrouver les caractères accentués dans un fichier contenant des caractères tels que à , é, è et autres ê ? | ||
| + | |||
| + | __Solution:__ | ||
| + | |||
| + | En utilisant le script suivant: | ||
| + | |||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | |||
| + | #two chars to replace | ||
| + | sed -i 's/Ã /à/g' $1 # this one may be confused with a word ending by í | ||
| + | sed -i 's/á/á/g' $1 | ||
| + | sed -i 's/â/â/g' $1 | ||
| + | sed -i 's/ä/ä/g' $1 | ||
| + | sed -i 's/ã/ã/g' $1 | ||
| + | sed -i 's/é/é/g' $1 | ||
| + | sed -i 's/è/è/g' $1 | ||
| + | sed -i 's/ê/ê/g' $1 | ||
| + | sed -i 's/ë/ë/g' $1 | ||
| + | sed -i 's/ẽ/ẽ/g' $1 | ||
| + | sed -i 's/ì/ì/g' $1 | ||
| + | sed -i 's/î/î/g' $1 | ||
| + | sed -i 's/ï/ï/g' $1 | ||
| + | sed -i 's/Ä©/ã/g' $1 | ||
| + | sed -i 's/ò/ò/g' $1 | ||
| + | sed -i 's/ó/ó/g' $1 | ||
| + | sed -i 's/ô/ô/g' $1 | ||
| + | sed -i 's/ö/ö/g' $1 | ||
| + | sed -i 's/õ/õ/g' $1 | ||
| + | sed -i 's/ù/ù/g' $1 | ||
| + | sed -i 's/ú/ú/g' $1 | ||
| + | sed -i 's/û/û/g' $1 | ||
| + | sed -i 's/ü/ü/g' $1 | ||
| + | sed -i 's/Å©/ũ/g' $1 | ||
| + | |||
| + | #one char to replace | ||
| + | sed -i 's/Ã/í/g' $1 | ||
| </code> | </code> | ||
| Ligne 491: | Ligne 583: | ||
| ~$ multitail /path/to/file1 /path/to/file2 | ~$ multitail /path/to/file1 /path/to/file2 | ||
| </code> | </code> | ||
| + | |||
| + | |||
| + | ====== Indenter un fichier XML ====== | ||
| + | |||
| + | __OS:__ Linux | ||
| + | |||
| + | __Problème:__ | ||
| + | |||
| + | Comment indenter correctement un fichier XML mal formaté ? | ||
| + | |||
| + | __Commande:__ | ||
| + | |||
| + | <code bash> | ||
| + | ~$ xmlindent -w bad_formatted_file.xml | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ====== Remplacer les tabulations par des espaces dans un fichier ====== | ||
| + | __OS:__ Linux | ||
| + | |||
| + | __Problème:__ | ||
| + | |||
| + | Comment remplacer l'ensemble des tabulations par 4 espaces dans un fichier ? | ||
| + | |||
| + | __Commande:__ | ||
| + | |||
| + | <code bash> | ||
| + | ~$ expand -t 4 my_file.txt > _tmp_ && mv _tmp_ my_file.txt | ||
| + | </code> | ||
| + | |||
| + | et de manière récursive: | ||
| + | |||
| + | <code bash> | ||
| + | ~$ find . ! -type d ! -name _tmp_ -exec sh -c 'expand -t 4 {} > _tmp_ && mv _tmp_ {}' \; | ||
| + | </code> | ||
| + | |||