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)