lcld a écrit 78 commentaires

  • [^] # Re: réponse groupée

    Posté par  . En réponse au message Espace dans un enregistrement... Évalué à 4.

    '\n' ne renvoie pas une chaîne avec 1 caractère `retour à la ligne' mais avec 2 caractères `\' et `n'
    En ajoutant un `$' devant, on peut écrire des chaînes de cacartères comme en C : http://www.gnu.org/software/bash/manual/bashref.html#SEC12
  • # réponse groupée

    Posté par  . En réponse au message Espace dans un enregistrement... Évalué à 5.

    si tu fais un export IFS='\n'
    presque
    (A ce propos, si quelqu'un pouvait expliquer comment affecter ce genre de chaine de caractères plus simplement, je suis preneur)

    IFS=$'\n'

    $TOTO=`smbclient -N -L "$NETWORK$CURRENT" 2>&1 | grep Disk |
    sed -e "s/^[\t]*//g" | grep -v [$] | awk -F" " {'print $1_$2_$3 '}
    glurps !! D'ailleurs, y aurait pas une erreur dans la commande awk ? (Et le 3è champ peut contenir des espaces...)
    TOTO="`smbclient -N -L "$NETWORK$CURRENT" 2>/dev/null |
    sed -n '/\$/!s/^\t*\([^ ]*\) *\(Disk\) *\(.*\)/\1_\2_\3/p'`"
  • # coLinux

    Posté par  . En réponse à la dépêche Virtualisation de Serveur : Linux sous Windows. Évalué à 5.

    Tu oublies coLinux, alors que c'est certainement la meilleure solution pour faire tourner Linux sous Windows. http://www.colinux.org/
  • # 48 ?

    Posté par  . En réponse au message petit ogg deviendra plus petit. Évalué à 2.

    Commence par encoder en mono. Apparamment, c'est déjà fait (48 correspond à du mono/q0) mais je le dis au cas où ; ce serait bête de passer à côté.

    48 n'est pas le bitrate le plus bas. L'option -q accepte des valeurs allant jusqu'à -1, c'est-à-dire 32 kb/s en mono. Et pour une même qualité, les débits nominaux diminuent pour des fréquences d'échantillonage inférieurs à 40 kHz.

    En plus de '--resample', tu peux aussi jouer sur le filtre passe-bas avec l'option '--advanced-encode-option lowpass_frequency='
  • # Formatage bas-niveau ?

    Posté par  . En réponse au message quelle distribution - multimedia. Évalué à 2.

    Ca fait un moment qu'il n'est plus possible d'effectuer de formatage bas-niveau. Les disques durs sont devenus beaucoup trop complexes pour que ce soit possible en dehors de l'usine, et il n'est pas certain que ce soit encore utile.
    Certains outils continuent d'utiliser le terme "formatage bas-niveau" mais il ne font que remplir le disque de zeros.
    http://www.pcguide.com/ref/hdd/geom/formatUtilities-c.html

    Et le "ça plante, je sais pas pourquoi, je change d'OS" ne t'avancera pas beaucoup. Il vaut mieux localiser d'où vient le plantage. Vérifie au moins ton matériel :
    1. mémoire : http://www.memtest.org/
    2. CPU : http://www.mersenne.org/freesoft.htm ou http://www.ocbase.com/
    3. disque dur : http://smartmontools.sourceforge.net/ et les outils fournis par le constructeur de ton disque dur
  • # sed le glouton

    Posté par  . En réponse au message echanger deux mots avec expression rationnelle. Évalué à 2.

    L'expression rationnelle doit "coller" au texte à modifier.
    Avec '\(toto\) \(titi\)', ce n'est pas le cas : ce qu'il y a entre '\(toto\)' et '\(titi\)', c'est-à-dire ' ' (un simple espace), ne peut pas correspondre pas à 'et '.

    Une solution possible : sed 's/\(toto\)\(.*\)\(titi\)/\3\2\1/'

    Oui mais... ton exemple est ambigü, et avec sed, ça donnera ça :
    titi et titi sont dans un bateau. toto tombe à l'eau.

    Pas certain que ce soit ce que tu veux. C'est parce que l'opérateur '*' est glouton (greedy en anglais). En perl, il y a l'opérateur '*?' pour avoir le comportement opposé. Je crois qu'il n'y a d'équivalent en sed, à moins d'écrire quelques horreurs comme :

    sed 's/\(toto\)\(\([^t]\|\(t\([^i]\|\(i\([^t]\|t[^i]\)\)\)\)\)*\)\(titi\)/\8\2\1/'
  • [^] # Re: En shell ...

    Posté par  . En réponse au message Traiter un fichier sur deux ?. Évalué à 1.

    echo *.png | while read i j ; do ./commande $i ; done
    Ca ne marche pas. 'echo' affiche tout en une seule ligne et d'après la doc de read : "Une ligne est lue depuis l'entrée standard, puis le premier mot de cette ligne est affecté au premier nom, le second mot au second nom, et ainsi de suite. Les mots restants sont affectés au dernier nom."
    De toute façon, cette solution ne gèrerait pas correctement les noms de fichiers avec des espaces.

    Je vois 2 solutions :
    1. Le plus efficace, s'il n'y a pas trop de fichier et si <command> accepte plusieurs fichiers en ligne de commande :
    ( IFS=$'\n'; <command> `ls | sed -n 'N;P'` )
    2. Sinon :
    ls | sed -n 'N;P' | while read; do <command> "$REPLY"; done
  • # FUSE & FuseIso

    Posté par  . En réponse au message mount d'images iso en user. Évalué à 1.

    http://fuse.sourceforge.net/ - Filesystem in USErspace
    http://fuse.sourceforge.net/wiki/index.php/FuseIso

    Pour ça, je ne connais pas de solution plus élégante que Fuse.
    Mais je n'ai jamais essayé FuseIso, et apparemment, c'est une solution encore un peu jeune.
  • [^] # Re: peut etre

    Posté par  . En réponse au message mount d'images iso en user. Évalué à 2.

    Si, il peut choisir l'image à monter avec la ligne suivante :
    /tmp/.iso /mnt/iso iso9660 loop,user
    Lorsqu'un utilisateur veut monter une image, il crée un lien symbolique /tmp/.iso vers son image (il supprime le lien après avoir démonté l'image).

    On peut même faire la même chose pour le répertoire de montage mais là, ça devient carrément suicidaire. Ex :
    /tmp/.fs-iso /tmp/.mp-iso iso9660 loop,user
    J'ai essayé avec un lien de /tmp/.mp-iso vers /boot et ça marche. Je n'ose pas imaginer la suite si le lien pointait vers /.
  • # Sans avoir à télécharger les sources...

    Posté par  . En réponse au message Trouver ou est implémtée une fonction dans un noyau?. Évalué à 2.

    il y a cette adresse : http://lxr.linux.no/source/
    Peut-être existe-t-il d'autres site qui soient mis à jour plus régulièrement.
    A la limite, tu peux monter le même site chez toi à partir des sources de Linux et de http://sourceforge.net/projects/lxr

    A propos de l'exemple que tu donnes faut savoir que c'est une syscall donc tu dois rechercher sys_gettimeofday
  • # Et /mnt/cdrom/cdrom et /mnt/disk/disk ?

    Posté par  . En réponse au message pb avec autofs ( pour cdrom et dd externe usb). Évalué à 1.

    Je me demande comment tu as fait pour en arriver là.
    Les exemples de fichiers de configuration auraient dû te mettre sur la bonne voie.

    $ cat /usr/share/doc/autofs/examples/auto.master
    ...
    #/misc /etc/auto.misc --timeout=60
    ...
    $ cat /usr/share/doc/autofs/examples/auto.misc
    ...
    cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
    ...


    Avec cet exemple, tu pourrais accéder à ton lecteur cd depuis /misc/cd

    Pourquoi faire aussi compliqué ? Simplement pour permettre de définir d'autre types d'automontage (regarde auto.net).
    Dans ton cas, tu peux te contenter de 2 fichiers :
    * /etc/auto.master où tu définis ton point d'automontage, ses options et le fichier qui va contenir tous les systèmes de fichiers auxquels tu veux accéder de cette manière
    * /etc/auto.map : les systèmes de fichiers en question ci-dessus

    Si tu veux accèder à ton lecteur cd depuis /mnt/cdrom, il faudrait que /mnt soit le point d'automontage :
    $ cat /etc/auto.master
    /mnt auto.map

    Puis :
    $ cat /etc/auto.map
    cdrom -fstype=iso9660,ro :/dev/cdrom
    disk -fstype=vfat,rw :/dev/sda1


    Personnellement j'utilise /mnt/auto plutôt que /mnt, quitte à faire des liens symboliques de /mnt/cdrom vers /mnt/auto/cdrom.
    Peut-être y a-t-il plus élégant pour ton problème.
    Dans le manuel d'auto.master, je viens de découvrir une fonctionnalité que je n'ai pas comprise ("For direct automount maps access is via the full path to the filesystem as given in the associated map. The mountpoint for the direct map is always specified as /- in the auto.master map.").
  • [^] # Re: c quoi ce site ?

    Posté par  . En réponse à la dépêche Appel à tous: Jeudi 30 mars, action (silencieuse) contre la loi DADVSI. Évalué à -2.

    Mais c'est déjà du MPEG4 ASP et de l'AAC (MPEG4-audio) dans ton MOV ! Alors je ne vois vraiment pas ce que viens faire ici le conteneur Apple à part emmerder le monde.
    Non, je n'ai pas QuickTime. Je n'ai jamais installé cette horreur et je ne l'installerai jamais. Reste VLC et mplayer (que je n'aime pas et) qui n'arrivent pas toujours à lire les mov ; ça dépend de ce qu'il y a dedans.
    Lorsqu'on tient vraiment à ce que le maximum de monde puisse lire une vidéo, les containers AVI et MP4 sont de bien meilleurs choix.

    Au-delà des considérations techniques, on sait tous ici que choisir un format, c'est augmenter sa popularité et le soutenir au dépens des autres, dont matroska :(

    J'ai 2 questions :
    - Avec quel logiciel ce fichier a-t-il été créé ?
    - Les spécifications du container d'Apple sont-elles ouvertes ?

    Je veux bien convertir la vidéo dans le format que vous voulez, mais je n'ai pas l'impression que ce soit une bonne idée. Ce serait mieux que l'auteur lui-même sache le faire.

    HS: Ca aurait été mieux si l'image avait été désentrelacée avant l'encodage. Ou alors qu'elle soit encodée comme était entrelacée.
  • [^] # Re: pour faire simpe...

    Posté par  . En réponse au message Pourquoi il marche pas mon script ?. Évalué à 0.

    man rename
    man mv
  • # Re: Pourquoi il marche pas mon script ?

    Posté par  . En réponse au message Pourquoi il marche pas mon script ?. Évalué à 1.

    Le '*.*' est voulu ou c'est un héritage du DOS ? Cette forme exclut les fichiers qui n'ont pas de point dans leurs noms. Pour sélectionner tous les fichiers, c'est '*'.

    rename 's/Ã /a/g' *.*
    Attention, ce doit être un espace non sécable (0xA0).
    Le plus sûr est de passer par la forme suivante :
    rename 's/Ã\xA0/a/g' *


    rename 's/à/a/g' *.*
    rename 's/â/a/g' *.*
    rename 's/ä/a/g' *.*
    rename 's/é/e/g' *.*
    rename 's/è/e/g' *.*
    rename 's/ê/e/g' *.*
    rename 's/ë/e/g' *.*
    rename 's/î/i/g' *.*
    rename 's/ï/i/g' *.*
    rename 's/ô/o/g' *.*
    rename 's/ö/o/g' *.*
    rename 's/ù/u/g' *.*
    rename 's/û/u/g' *.*
    rename 's/ü/u/g' *.*

    En terme d'efficacité, on repassera. Regarde du côté de la commande 'y' :
    rename y/àâäéèêëîïôöùûü/aaaeeeeiioouuu/ *
    Et concatène avec le reste :
    rename 's/â/a/g; s/ê/e/g; ...; y/.../.../' *
    Autre approche :
    rename 's/Ã[¢ ¤]|[àâä]/a/g; s/Ã[ª¨«©]|[éèêë]/e/g; ...' *


    En fait, je ne vois pas d'erreur.
    A noter que si tout fonctionne correctement, il ne doit y avoir aucun message.

    J'oublierais le script et simulerais l'exécution depuis la ligne de commande pour voir si chaque commande fonctionne comme prévu.
  • [^] # Re: le bruit et les db

    Posté par  . En réponse au message mp3splt ou équivalent ?. Évalué à 1.

    sache qu'une diffrence de 3dB c'est x2. ma fortune a diminué de 3 dB signifie qu'elle a été divisé par 2, pareil si elle augement de 3 dB elle a été multiplié par 2.
    Non : 20 log 2 ≈ 6
  • # info sed

    Posté par  . En réponse au message besoin de commande perl pour éviter une boucle sur grep, un if et un sed (en clair un rechercher remplacer conditionnel). Évalué à 2.

    Regarde les exemples ; sed ne se limite pas à la commande 's'...

    Et pourtant, ici, une simple commande 's' suffit :
    sed 's/^\(ACT\(~[^~]*\)\{10\}~\)0[^~]*\(~[^~]*~\)\([^~]*\)/\1\4\3\4/'
  • [^] # Re: Quelques remarques

    Posté par  . En réponse au message Premier script Bash. Évalué à 1.

    if [ $(($test1+$test2)) = 2 ];

    Ouais, c'était le premier moyen qui m'est venu à l'idée de vérifier si les deux tests ont réussis, mais bon... Ça ne doit pas être très usuel =)
    En effet : if (( test1 + test2 == 2 ));
    Aussi... Comment on fait pour vérifier que convert et montage est exécutable?
    if [ -x $PATH/convert ]; then ???

    Je ne crois pas que ce soit ça, il y aurait une façon de faire une boucle qui test chaque chemin, mais bon, en pratique, c'est quoi qu'il faut faire?
    Oui, en bouclant sur chaque élément de $PATH, c'est possible. Mais bon, avec which, c'est direct : if which convert >&-; then ...
  • [^] # Re: Explique !

    Posté par  . En réponse au journal Mozilla qt, ou en est on?. Évalué à 1.

    La version CVS ne compile plus avec qt. J'ai eu des erreurs spécifiques à l'interfaçage qt.

    Avec les sources de debian.org ( http://ftp.debian.org/debian/pool/main/f/firefox/firefox_1.5(...) ), je n'ai eu qu'une erreur à résoudre ( https://bugzilla.mozilla.org/show_bug.cgi?id=234035 ). Pour la tienne, je vois pas trop ce que tu pourrais faire.

    J'ai pas testé longtemps le résultat. Buggé et instable : la barre de menu qui déconne, et plantage dès que j'ai fermé la boîte de préférences.
  • [^] # Re: Bravo mais...

    Posté par  . En réponse à la dépêche Subversion 1.3.0 est disponible. Évalué à 3.

    Un workaround partiel :

    * Utiliser un dépôt de type fsfs

    * (optionnel) A la mise en place de ce workaround, exécuter la commande cp db/current .db_current depuis le dépôt.

    * Ajouter la commande suivante dans le "hook" post-commit :
    cat "$REPOS/db/current" >> "$REPOS/.db_current"

    * Et utiliser le script suivant pour annuler le dernier commit :
    .../bin$ cat svnrevert
    #! /bin/sh
    [ $# != 1 ] && {
    echo 'Usage: svnrevert REPOS_PATH' >&2
    exit 1
    }
    cd "$1"
    set -- `cat db/current`
    [ $# == 3 ] &&
    sed -i '${ g; w db/current
    d}; h' .db_current &&
    rm db/rev{,prop}s/$1
    cd -
  • [^] # Re: NAT et magneto numerique

    Posté par  . En réponse au journal des news de free : une chaine freenews... à remplir :). Évalué à 1.

    Testé sur le noyau 2.6.12-10 (Debian), avec gcc 3.3.6-12 et la révision 6340 de patch-o-matic :
    CC [M] net/ipv4/netfilter/ip_nat_rtsp.o
    net/ipv4/netfilter/ip_nat_rtsp.c: In function `rtsp_mangle_tran':
    net/ipv4/netfilter/ip_nat_rtsp.c:167: warning: implicit declaration of function `ip_conntrack_change_expect'
    net/ipv4/netfilter/ip_nat_rtsp.c: In function `expected':
    net/ipv4/netfilter/ip_nat_rtsp.c:368: error: storage size of `mr' isn't known
    net/ipv4/netfilter/ip_nat_rtsp.c:368: warning: unused variable `mr'
    net/ipv4/netfilter/ip_nat_rtsp.c: In function `help_out':
    net/ipv4/netfilter/ip_nat_rtsp.c:411: error: structure has no member named `seq'
    net/ipv4/netfilter/ip_nat_rtsp.c:431: error: `ct' undeclared (first use in this function)
    net/ipv4/netfilter/ip_nat_rtsp.c:431: error: (Each undeclared identifier is reported only once
    net/ipv4/netfilter/ip_nat_rtsp.c:431: error: for each function it appears in.)
    net/ipv4/netfilter/ip_nat_rtsp.c:431: error: incompatible type for argument 2 of `rtsp_mangle_tran'
    net/ipv4/netfilter/ip_nat_rtsp.c:431: warning: passing arg 3 of `rtsp_mangle_tran' from incompatible pointer type
    net/ipv4/netfilter/ip_nat_rtsp.c:431: warning: passing arg 4 of `rtsp_mangle_tran' from incompatible pointer type
    net/ipv4/netfilter/ip_nat_rtsp.c:431: warning: passing arg 5 of `rtsp_mangle_tran' makes integer from pointer without a cast
    net/ipv4/netfilter/ip_nat_rtsp.c:431: error: too many arguments to function `rtsp_mangle_tran'
    net/ipv4/netfilter/ip_nat_rtsp.c: At top level:
    net/ipv4/netfilter/ip_nat_rtsp.c:449: error: syntax error before "enum"
    net/ipv4/netfilter/ip_nat_rtsp.c:452: warning: function declaration isn't a prototype
    net/ipv4/netfilter/ip_nat_rtsp.c: In function `help':
    net/ipv4/netfilter/ip_nat_rtsp.c:453: error: `pskb' undeclared (first use in this function)
    net/ipv4/netfilter/ip_nat_rtsp.c:456: error: `ctinfo' undeclared (first use in this function)
    net/ipv4/netfilter/ip_nat_rtsp.c:462: error: `ct_rtsp_info' undeclared (first use in this function)
    net/ipv4/netfilter/ip_nat_rtsp.c:462: error: `exp' undeclared (first use in this function)
    net/ipv4/netfilter/ip_nat_rtsp.c:462: error: too many arguments to function `help_out'
    net/ipv4/netfilter/ip_nat_rtsp.c:469: error: `ip_rtsp_lock' undeclared (first use in this function)
    net/ipv4/netfilter/ip_nat_rtsp.c:454: warning: unused variable `tcph'
    net/ipv4/netfilter/ip_nat_rtsp.c:455: warning: unused variable `datalen'
    net/ipv4/netfilter/ip_nat_rtsp.c: In function `fini':
    net/ipv4/netfilter/ip_nat_rtsp.c:476: error: `ip_nat_rtsp_hook' undeclared (first use in this function)
    net/ipv4/netfilter/ip_nat_rtsp.c: In function `init':
    net/ipv4/netfilter/ip_nat_rtsp.c:484: error: `ip_nat_rtsp_hook' undeclared (first use in this function)
    net/ipv4/netfilter/ip_nat_rtsp.c: At top level:
    net/ipv4/netfilter/ip_nat_rtsp.c:65: warning: `ports' defined but not used
    net/ipv4/netfilter/ip_nat_rtsp.c:69: warning: `num_ports' defined but not used
    net/ipv4/netfilter/ip_nat_rtsp.c:367: warning: `expected' defined but not used


    :(
    D'après la description ("en cours de portage"), je m'y attendais. Ca devrait marcher pour ceux qui utilisent le noyau 2.4.
  • [^] # Re: c'est qu'une impression

    Posté par  . En réponse au journal Real Player plus fort que Xvid/DivX ?. Évalué à 2.

    Un meilleur format, c'est bien gentil, mais encore faut-il une machine et une implémentation qui suivent. En haute qualité, c'est pas encore ça.
    Pour en voir tourner toute la journee au taff, ca y est c'est ca.
    Assurons-nous de parler de la même chose alors. Si c'est pour mettre un film sur 1 CD, ce qui est très satisfaisant pour une télé qu'on regarde de loin, alors oui, xvid est certainement dépassé.
    Je parle plutôt de vidéos qui prendraient 2 fois plus de place en xvid. Le h264 apporte quelque chose ?

    Quand aux machines, bah ouais, c'est ballot pour les vieux pentium, d'un autre cote, ben la HD (ou meme SD, hein) pousse tres fort derriere et elles vont bien finir a la casse, comme les 486, les vieux celerons et tous ce qui les a precede...
    Il existe aujourd'hui des PC capables de décoder du 1080p/h264 ?
    Puisqu'à mon avis, pour du cinéma, l'AVC apporte peu voire rien du tout par rapport à l'ASP, toute cette surconsommation de ressources CPU me paraît bien inutile. On comprend d'ailleurs pourquoi le MPEG2 sera encore utilisé pour les successeurs du DVD.

    Les implementation libres sont peut etre pas top moumoute pour l'instant, mais ca va bien venir un jour ou l'autre.
    x264 est très bien placé. Par exemple : http://forum.doom9.org/showthread.php?t=103966
  • [^] # Re: c'est qu'une impression

    Posté par  . En réponse au journal Real Player plus fort que Xvid/DivX ?. Évalué à 3.

    Sinon, xvid est plutot moyen niveau qualite
    A lire forum.doom9.org, j'en doute. Et il ne faut pas se contenter de la dernière version stable (1.0.3, datant d'1 an). Je n'ai aucun souci avec les version 1.1.0beta1&2 et celles-ci apportent des fonctionnalités importantes, notamment "VHQ for B-frames". Il y a même des améliorations prévues en terme de qualité.
    Sinon, ce qui roxorise en ce moment, c'est l'h264.
    Un meilleur format, c'est bien gentil, mais encore faut-il une machine et une implémentation qui suivent. En haute qualité, c'est pas encore ça.

    Le choix du codec ne suffit pas. On a si vite fait de mal configurer que lorsqu'on compare plusieurs codecs, il faut faire les encodages soit même.
  • # Question similaire

    Posté par  . En réponse au journal DADVSI : les logiciels épargnés ???. Évalué à 3.

    A propos du projet de loi DADVSI, je n'ai pas eu le temps de lire grand chose et peut-être que ma question a déjà été posée ici. Sur standblog.org, je suis tombé sur ce commentaire de Maître Eolas : http://standblog.org/blog/2005/12/09/93114537-signez-la-peti(...)
    Et à la question "Je ne vois pas en quoi le LL est directement concerné par cette loi.", il répond notamment : "il ne l'est pas du tout."
  • [^] # Re: ... et utilité de ord ?

    Posté par  . En réponse au journal expressions arithmétiques sur des caractères en shell. Évalué à 3.

    Merci, je sais lire et printf n'est pas exclusif à bash !

    printf est à la fois interne à bash et disponible en tant que programme externe ( /usr/bin/printf )
    Tout comme echo ( /bin/echo )

    Donc pour sh, l'utilisation de printf est ok, et pour bash, on peut imaginer que c'est préférable à chr en terme de performance. Je ne suis donc pas du tout hors sujet.
  • [^] # Re: ... et utilité de ord ?

    Posté par  . En réponse au journal expressions arithmétiques sur des caractères en shell. Évalué à 1.

    man bash -> rubrique 'COMMANDES INTERNES DU SHELL' : tu y trouveras printf

    (merci pour 'od', je ne connaissais pas)