linux:scripts_bash:vrac
                Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| linux:scripts_bash:vrac [18/08/2006 19:46] – (ancienne révision restaurée) 127.0.0.1 | linux:scripts_bash:vrac [22/07/2010 17:29] (Version actuelle) – daniel | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Bout de scripts en vrac ====== | ====== Bout de scripts en vrac ====== | ||
| - | pour récupérer les hits de certaines heures certains jours... | ||
| - | for j in $(seq -w 7 11); do echo $j; jour=" | + | ===== dates ===== | 
| + | * date => timestamp : '' | ||
| + | * timestamp => date : '' | ||
| + | |||
| + | ===== lister fichiers avec md5, taille, etc ===== | ||
| + | Pour faire un csv avec dossier; | ||
| + | <code bash> | ||
| + | rep=dossier_dans_lequel_chercher | ||
| + | csv=liste_fichiers.csv; | ||
| + | echo '" | ||
| + | find " | ||
| + | do | ||
| + | fich=" | ||
| + | rep=" | ||
| + | md5=$(md5sum " | ||
| + | echo -n " | ||
| + | ls -l " | ||
| + | done; | ||
| + | </ | ||
| + | |||
| + | ===== parsing de logs ===== | ||
| + | |||
| + | pour récupérer les hits de certaines heures certains jours (dans des logs apache)... | ||
| + | |||
| + | for j in $(seq -w 7 11); \ | ||
| + | do echo $j; jour=" | ||
| + | trace=recap_06-08-${j}_2sites.log; | ||
| + | for f in $logs; do echo -e " | ||
| + | for h in $(seq 17 22); do echo -n "${h}h :">> | ||
| + | grep -c " | ||
| + | done; \ | ||
| + | done;\ | ||
| + | done; | ||
| + | |||
| + | |||
| + | |||
| + | ===== tags mp3 ===== | ||
| + | Pour manipuler en masse des tags mp3, j'ai essayé pas mal de soft " | ||
| + | |||
| + | Récupérer les nom de fichier mp3: | ||
| + | find /path/2/mp3 -name *.mp3|sed -e ' | ||
| + | Récupérer les tags, et mettre tout ça dans un fichier texte avec | comme séparateur. | ||
| + | echo " | ||
| + | while read ligne; do echo -n " | ||
| + | id3ed -i " | ||
| + | echo >> | ||
| + | Pour comprendre la ligne principale : | ||
| + | * tester id3ed -i fichier : affiche la liste des tags du fichier | ||
| + | * iconv -f ISO8859-1 -t UTF8 : sert à mettre en utf8 la sortie de id3ed (si votre sytème de fichier n'est pas en utf8, donc on suppose des noms de fichiers en iso8859-1, c'est inutile). | ||
| + | * sed -e '1 d; s/ | ||
| + | * tr -d " | ||
| + | * le dernier echo sert à revenir à la ligne dans le fichier csv de sortie | ||
| + | |||
| + | Ensuite, il reste à ouvrir le csv avec votre tableur (oocalc par exemple), modifier ce que vous voulez, ajouter dans une dernière colonne une formule du genre | ||
| + | =" | ||
| + | La syntaxe id3ed est en effet ('' | ||
| + | id3ed [-s songname] [-n artist] [-a album] [-y year] [-c comment] [-k tracknum] [-g genre] fichier | ||
| + | |||
| + | |||
| + | |||
| + | ===== Effacer des images orphelines ===== | ||
| + | <code bash> | ||
| + | # dans un rep d' | ||
| + | # backup ! | ||
| + | cp -a . ../img.bak | ||
| + | mkdir ../tmp | ||
| + | # les fichiers dans lesquels il faut fouiller | ||
| + | fichiers=" | ||
| + | # on fouille | ||
| + | for img in *; do echo $img; > | ||
| + | # et on efface ce qui n'a renvoyé que des 0 | ||
| + | for f in ../ | ||
| + | # ensuite, si tout est OK, on peut effacer img.bak et tmp | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Colorer la sortie d'un script ===== | ||
| + | Pour afficher [OK] en vert et [KO] en rouge en fonction du bon déroulement d'une commande (cf une [[ http:// | ||
| + | < | ||
| + | OK='[ \e[0; | ||
| + | KO='[ \e[0; | ||
| + | commande && echo -e $OK || echo -e $KO | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Récupérer les journaux de france culture ===== | ||
| + | D' | ||
| + | <code bash> | ||
| + | [ $# -ne 1 ] && echo "Il faut passer un argument (7, | ||
| + | |||
| + | urls=([7]=http:// | ||
| + | url='' | ||
| + | for i in ${!urls[*]} | ||
| + | do | ||
| + | [ $1 -eq $i ] && url=${urls[i]} && h=$i | ||
| + | done | ||
| + | [ -z " | ||
| + | |||
| + | wget $url -O fc${h}.xml | ||
| + | mp3=$(sed -nre ' | ||
| + | { | ||
| + | :boucle | ||
| + | N | ||
| + | $! b boucle | ||
| + | } | ||
| + | s# | ||
| + | |||
| + | echo -e "\nOn va essayer de récupérer \e[0; | ||
| + | wget " | ||
| + | </ | ||
| + | |||
| + | Et avec zenity (à peaufiner...) | ||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | |||
| + | # les urls des rss, à modifier si ça devait changer... | ||
| + | urls=([7]=http:// | ||
| + | |||
| + | # qq tests | ||
| + | which zenity >/ | ||
| + | # Attention avec $?, 0 => OK, on change | ||
| + | [ $? -eq 0 ] && zenok=TRUE || zenok=FALSE | ||
| + | |||
| + | which notify-send >/ | ||
| + | [ $? -eq 0 ] && notifok=TRUE || notifok=FALSE | ||
| + | # faudrait plutôt se baser sur le test [ -z " | ||
| + | |||
| + | |||
| + | # les fonctions | ||
| + | |||
| + | get_heure() { | ||
| + | if [ $# -eq 0 ] && [ " | ||
| + | then | ||
| + | ret=$(zenity --title=' | ||
| + | --column='' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | [ -z " | ||
| + | case " | ||
| + | 7h) h=7;; | ||
| + | 12h30) h=12;; | ||
| + | 18h) | ||
| + | 22h) | ||
| + | *) set_msg "Heure $ret inconnue" | ||
| + | esac | ||
| + | else | ||
| + | [ $# -ne 1 ] && echo "Il faut passer un argument (7, | ||
| + | h=$1 | ||
| + | fi | ||
| + | return $h | ||
| + | } | ||
| + | |||
| + | set_msg() { | ||
| + | [ $notifok = " | ||
| + | } | ||
| + | |||
| + | check_heure() { | ||
| + | url='' | ||
| + | for i in ${!urls[*]} | ||
| + | do | ||
| + | [ $1 -eq $i ] && url=${urls[i]} && h=$i | ||
| + | done | ||
| + | [ -z " | ||
| + | } | ||
| + | |||
| + | ask2continue() { | ||
| + | if [ $zenok = TRUE ] | ||
| + | then | ||
| + |  | ||
| + | [ $? != " | ||
| + | else | ||
| + | echo $1 | ||
| + | echo " | ||
| + | read rep | ||
| + | [ " | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | get_url() { | ||
| + | xml="/ | ||
| + | wget $url -O " | ||
| + | mp3=$(sed -nre ' | ||
| + | { | ||
| + | :boucle | ||
| + | N | ||
| + | $! b boucle | ||
| + | } | ||
| + | s# | ||
| + | |||
| + | jour=$(date ' | ||
| + | [ " | ||
| + | |||
| + | # si abandon on est déjà sorti | ||
| + | fich=/ | ||
| + | wget " | ||
| + | if [ $? ] | ||
| + | then | ||
| + | rm -f fc${h}.xml | ||
| + | set_msg "On a récupéré un mp3 ($fich)" | ||
| + | xdg-open $fich | ||
| + | # rm -f $fich # xdg rend la main tout de suite | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | # et le main | ||
| + | get_heure $* | ||
| + | h=$? | ||
| + | check_heure $h | ||
| + | get_url $url | ||
| + | </ | ||
linux/scripts_bash/vrac.1155923197.txt.gz · Dernière modification : 18/11/2006 10:28 (modification externe)
                
                