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> | ||
+ |