Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1926 Le 15/05/2011, à 19:12

Kanor

Re : /* Topic des codeurs couche-tard [4] */

Il ya pas à dire vim il y a vraiment des truc excellent en plugin

Hors ligne

#1927 Le 15/05/2011, à 21:14

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

Comme Emacs big_smile

Bon ça fait une paie que j'ai pas posté de code alors voilà un bout du truc (une des fonctions principales) sur lequel je suis en ce moment

submitBlast :: Params -> IO (Maybe (String, Int))
submitBlast params = 
        if isValid params
           then do html <- simpleHTTP (getRequest url) >>= getResponseBody
                   return $ fetchQBlastInfo html >>= extractInfo
           else return Nothing
    where url = generateUrl params

(Pour ceux qui n'auraient pas reconnu, oui c'est de la bioinfo…)

Dernière modification par grim7reaper (Le 15/05/2011, à 21:17)

Hors ligne

#1928 Le 15/05/2011, à 21:25

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Haskell ?

On n’est pas beaucoup à pouvoir le lire ici, donc c’est difficile de reconnaître quoi que ce soit… tongue


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1929 Le 15/05/2011, à 21:35

grim7reaper

Re : /* Topic des codeurs couche-tard [4] */

Yep, Haskell smile

En même temps nul besoin de savoir lire l'Haskell, suffit de voir qu'on parle de BLAST (la truelle du bioinformaticien comme disait l'un de mes profs ^^).

Haskell pour deux raisons d'ailleurs :
- la pratique, faut que je me fasse un peu plus la main sur ce langage ;
- il y a un creneau pour faire de la bioinfo dans ce langage (alors que tout, ou presque, est déjà fait à ce niveau en Python, Perl, Ruby, Java, C++, …). Quoique, y a déjà un mec sur le coup (et il semble pas mauvais, du moins d'après les quelques publi de lui que j'ai lu), mais il manque encore pas mal de fonctionnalités par rapport à ce qui est dispo dans les autres langages.

Dernière modification par grim7reaper (Le 15/05/2011, à 23:04)

Hors ligne

#1930 Le 15/05/2011, à 22:11

tshirtman

Re : /* Topic des codeurs couche-tard [4] */

<Root>:
    BoxLayout:
        orientation: 'vertical'
        BoxLayout:
            orientation: 'horizontal'
            size_hint_y: None
            height: 40

            Button:
                text: 'import photo'

            Button:
                text: 'add text'

            Button: 
                text: 'mail'

            Button:
                text: 'export to png'

            Button:
                text: 'quit'
                on_release: root.quit()

        StencilView:
            Scatter:
                canvas:
                    Color:
                        rgba: .5, .5, .5, .5
                    Rectangle:
                        size: self.size
                Button:
                    size: 80, 80
                    pos: 10, 10
                    text: 'Hello'
#!/usr/bin/env python
from kivy.app import App
from kivy.factory import Factory
from kivy.uix.widget import Widget
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.boxlayout import BoxLayout

class Root(FloatLayout):
    def quit(self):
        exit()


class Main(App):
    """
    """
    def build(self):
        return Root()


if __name__ in ('__main__', '__android__'):
    Factory.register('Root', cls=Root)
    Main().run()

petit mockup de programme kivy…

pour voir ce que ça donne: http://pub.tshirtman.fr/Capture-1.png

Hors ligne

#1931 Le 15/05/2011, à 22:58

The Uploader

Re : /* Topic des codeurs couche-tard [4] */

@t'man : nice! wink

max@max-laptop:/home/max/Dev/uade% ./configure --only-audacious
which: no gmake in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin/vendor_perl:/usr/bin/core_perl)
Using strlcpy/cat() replacements

UADE and frontends is installed to      : /usr/local/bin
Data directory                          : /usr/local/share/uade2
Uadecore directory                      : /usr/local/lib/uade2
Man (documentation) directory           : /usr/local/share/man/man1
Installer                               : /bin/install
Make                                    : /usr/bin/make
Target CC                               : gcc
libuade                                 : no
uadecore                                : no
uade123                                 : no
XMMS plugin                             : no
Audacious plugin                        : yes
Audacious plugin directory              : /usr/lib/audacious/Input
uadefs                                  : no
Text scope support                      : no

max@max-laptop:/home/max/Dev/uade% make clean
/usr/bin/make -C src clean
make[1]: Entering directory `/home/max/Dev/uade/src'
rm -f main.o newcpu.o memory.o custom.o cia.o audio.o compiler.o cpustbl.o missing.o sd-sound.o md-support.o cfgfile.o fpp.o debug.o readcpu.o cpudefs.o cpuemu1.o cpuemu2.o cpuemu3.o cpuemu4.o cpuemu5.o cpuemu6.o cpuemu7.o cpuemu8.o uade.o uadeipc.o unixatomic.o ossupport.o uademain.o sinctable.o text_scope.o *.o uadecore
rm -f gencpu cpudefs.c
rm -f cpuemu.c build68k cputmp.s cpustbl.c cputbl.h
make[1]: Leaving directory `/home/max/Dev/uade/src'
/usr/bin/make feclean
make[1]: Entering directory `/home/max/Dev/uade'
/usr/bin/make -C src/frontends/audacious clean
make[2]: Entering directory `/home/max/Dev/uade/src/frontends/audacious'
rm -f *.so *.o
make[2]: Leaving directory `/home/max/Dev/uade/src/frontends/audacious'
/usr/bin/make -C src/frontends/libuade clean
make[2]: Entering directory `/home/max/Dev/uade/src/frontends/libuade'
rm -f *.o *.so *.a
make[2]: Leaving directory `/home/max/Dev/uade/src/frontends/libuade'
/usr/bin/make -C src/frontends/uade123 clean
make[2]: Entering directory `/home/max/Dev/uade/src/frontends/uade123'
rm -f uade123 *.o
make[2]: Leaving directory `/home/max/Dev/uade/src/frontends/uade123'
/usr/bin/make -C src/frontends/uadefs clean
make[2]: Entering directory `/home/max/Dev/uade/src/frontends/uadefs'
rm -f uadefs *.o
make[2]: Leaving directory `/home/max/Dev/uade/src/frontends/uadefs'
/usr/bin/make -C src/frontends/uadesimple clean
make[2]: Entering directory `/home/max/Dev/uade/src/frontends/uadesimple'
rm -f uadesimple *.o
make[2]: Leaving directory `/home/max/Dev/uade/src/frontends/uadesimple'
/usr/bin/make -C src/frontends/xmms clean
make[2]: Entering directory `/home/max/Dev/uade/src/frontends/xmms'
rm -f *.so *.o
make[2]: Leaving directory `/home/max/Dev/uade/src/frontends/xmms'
make[1]: Leaving directory `/home/max/Dev/uade'
max@max-laptop:/home/max/Dev/uade% make
/usr/bin/make -C src/frontends/libuade
make[1]: Entering directory `/home/max/Dev/uade/src/frontends/libuade'
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../../unixatomic.c
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../../uadeipc.c
../../uadeipc.c: In function ‘uade_parse_u32_message’:
../../uadeipc.c:77:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
../../uadeipc.c: In function ‘uade_parse_two_u32s_message’:
../../uadeipc.c:87:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
../../uadeipc.c: In function ‘uade_send_u32’:
../../uadeipc.c:248:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
../../uadeipc.c: In function ‘uade_send_two_u32s’:
../../uadeipc.c:260:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/amifilemagic.c
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/eagleplayer.c
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/unixwalkdir.c
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/effects.c
../common/effects.c:53:1: warning: variably modified ‘headphone2_ap_l’ at file scope [enabled by default]
../common/effects.c:54:1: warning: variably modified ‘headphone2_ap_r’ at file scope [enabled by default]
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/uadecontrol.c
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/uadeconf.c
../common/uadeconf.c: In function ‘handle_attributes’:
../common/uadeconf.c:191:3: warning: case value ‘32’ not in enumerated type ‘enum uade_attribute_type’ [-Wswitch]
../common/uadeconf.c:197:3: warning: case value ‘64’ not in enumerated type ‘enum uade_attribute_type’ [-Wswitch]
../common/uadeconf.c:205:3: warning: case value ‘524288’ not in enumerated type ‘enum uade_attribute_type’ [-Wswitch]
../common/uadeconf.c:209:3: warning: case value ‘1048576’ not in enumerated type ‘enum uade_attribute_type’ [-Wswitch]
../common/uadeconf.c:201:3: warning: case value ‘4194304’ not in enumerated type ‘enum uade_attribute_type’ [-Wswitch]
../common/uadeconf.c:217:3: warning: case value ‘8388608’ not in enumerated type ‘enum uade_attribute_type’ [-Wswitch]
../common/uadeconf.c:221:3: warning: case value ‘33554432’ not in enumerated type ‘enum uade_attribute_type’ [-Wswitch]
../common/uadeconf.c:225:3: warning: case value ‘67108864’ not in enumerated type ‘enum uade_attribute_type’ [-Wswitch]
../common/uadeconf.c:229:3: warning: case value ‘134217728’ not in enumerated type ‘enum uade_attribute_type’ [-Wswitch]
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/md5.c
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../../ossupport.c
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/songdb.c
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/songinfo.c
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/vplist.c
gcc -Wall -O2 -I../include -I../common -fPIC -shared -g  -c ../common/support.c
gcc -Wl,-soname,libuade.so -shared -o libuade.so -lm unixatomic.o uadeipc.o amifilemagic.o eagleplayer.o unixwalkdir.o effects.o uadecontrol.o uadeconf.o md5.o ossupport.o songdb.o songinfo.o vplist.o support.o
ar rcs libuade.a unixatomic.o uadeipc.o amifilemagic.o eagleplayer.o unixwalkdir.o effects.o uadecontrol.o uadeconf.o md5.o ossupport.o songdb.o songinfo.o vplist.o support.o
make[1]: Leaving directory `/home/max/Dev/uade/src/frontends/libuade'
/usr/bin/make -C src/frontends/audacious
make[1]: Entering directory `/home/max/Dev/uade/src/frontends/audacious'
gcc -Wall -O2 -fPIC -shared -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/libmowgli -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14    -g -I../common -I../include -c plugin.c
In file included from plugin.c:20:0:
plugin.h:12:28: fatal error: audacious/util.h: No such file or directory
compilation terminated.
make[1]: *** [plugin.o] Error 1
make[1]: Leaving directory `/home/max/Dev/uade/src/frontends/audacious'
make: *** [audaciousplugin] Error 2

Ouais en fait j'ai rien modifié pour le moment hein (projet 4 matières et partiels qui approchent, tout ça).

C'est juste que je préfère poster ça plutôt que mes Servlets et JSPs du projet 4 matières (a.k.a. "génie log'"), c'est moins moche. tongue


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1932 Le 15/05/2011, à 23:38

tshirtman

Re : /* Topic des codeurs couche-tard [4] */

et bien sur, le même code tongue (enfin non, j'ai changé un peu la taille du widget, j'arrivait pas à le resizer avec mes gros doigts ^^)
http://pub.tshirtman.fr/Photo-0097.jpg

Dernière modification par tshirtman (Le 15/05/2011, à 23:38)

Hors ligne

#1933 Le 15/05/2011, à 23:48

samυncle

Re : /* Topic des codeurs couche-tard [4] */

.


Hello world

Hors ligne

#1934 Le 16/05/2011, à 01:04

Кຼزດ

Re : /* Topic des codeurs couche-tard [4] */

Aujourd’hui, j’ai pas codé.


dou

Hors ligne

#1935 Le 16/05/2011, à 01:25

cm-t

Re : /* Topic des codeurs couche-tard [4] */

'Nuit;

Dernière modification par cm-t (Le 16/05/2011, à 02:00)


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#1936 Le 16/05/2011, à 03:26

Sir Na Kraïou

Re : /* Topic des codeurs couche-tard [4] */

.


Descendant de Charlemagne et de LUCA.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

Hors ligne

#1937 Le 16/05/2011, à 04:41

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Кຼزດ a écrit :

Aujourd’hui, j’ai pas codé.

J’ai essayé ; je n’ai pas été productif… hmm


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1938 Le 16/05/2011, à 05:04

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Arf, je vais avoir plus de boulot que prévu avec GIO… hmm


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1939 Le 16/05/2011, à 07:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [4] */

Scores totaux, depuis le début :

1) 3266    nesthib
2) 2996    samuncle
3) 2683    Pylade
4) 2072    Кຼزດ
5) 1690+5  grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
6) 1591    cm-t
7) 1211    na kraïou
8) 866    helly
9) 858    \\Ouranos//
10) 659    gnuuat
11) 565    Lagierl
12) 555    tshirtman
13) 374    Rolinh
14) 318    The Uploader
15) 288    nathéo
16) 249    Kanor
17) 196    Askelon
18) 160    :!pakman
19) 121    ǤƦƯƝƬ
20) 93    petifrancais
21) 91    kamui57
22) 78    edge_one
22) 78    pierguiard
24) 70    gulp
25) 42    sakul
26) 39    Le Rouge
27) 37    ilagas
28) 33    xapantu
29) 30    keny
30) 26    gustare
30) 26    d10g3n
32) 25    GentooUser
32) 25    Morgiver
34) 24    ไ୦บเઢ'
34) 24    Steap
36) 20    CROWD
37) 18    Ph3nix_
38) 16    kouskous
39) 15    timsy
40) 12    stratoboy
40) 12    sailing
42) 11    alexises
42) 11    Crocoii
44) 10    Toineo
44) 10    NutMotion
44) 10    pseudovingtcinqcaracteres
44) 10    pfriedZ
44) 10    CasseTaTele
44) 10    Zeibux
44) 10    THS`
51) 8    Mornagest
52) 7    Vista
53) 6    ubuntlin
53) 6    asma.geek
55) 5    tendances-tdct
55) 5    kinouchou
57) 4    danychou56
57) 4    Neros
57) 4    Biaise
57) 4    totoflute
57) 4    pinballyoda ㋛
57) 4    NLS le pingouin
57) 4    ceric
57) 4    Dice-Man
65) 3    Revan26914
65) 3    raspouillas
65) 3    sweetly
68) 2    SoJaS
69) 1    geenux
69) 1    ArzhurBZH

RépartitionPosts/heure


Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#1940 Le 16/05/2011, à 07:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [4] */

Scores de la période en cours :

1) 150    Pylade
2) 96    nesthib
3) 81    na kraïou
4) 67    samuncle
5) 59    Кຼزດ
6) 49    cm-t
7) 40    nathéo
8) 20    Rolinh
9) 18    Kanor
9) 18    The Uploader
9) 18    tshirtman
12) 15    :!pakman
12) 15    grim7reaper
14) 10    sakul
14) 10    THS`
16) 8    helly
17) 6    Lagierl
18) 4    \\Ouranos//
19) 1    ArzhurBZH

Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#1941 Le 16/05/2011, à 10:40

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

Plop les codeurs,

je suis pas trop habitué des scripts bash mais j'ai dû en écrire un pour un pote.

Le problème:
il y a un dossier, contenant des fichiers *.mov, *.jpg et *.xml ainsi qu'éventuellement un dossier contenant d'autres de ces types de fichiers dont le nom contient un id, qui peut être n'importe où. Exemple:
234455_Seal_houp.mov, unit_1840.xml, 234455_Seal_houp.png, unit_184056.xml, unit_234455.xml
Le but étant de récupérer cette ID, de créer un dossier du nom de l'ID et de déplacer tous les fichiers ayant cette ID dans le nom dans le dossier créé.

Ma solution:

#!/bin/bash
# This script creates folders in which to move files according to their
# ID given in their filename as in, for example, 12345_bob_marley_london.mov
# 12345 would be the ID

echo Yay, I will clean YOUR mess...
echo Moving files:
find -P `pwd` -maxdepth 2 | sed 's!.*/!!' | while read line; do
    CURID=$(echo $line | egrep -o *'[[:digit:]]+'* )
    if [ "$CURID" != "" ]; then
        mkdir -p $CURID
        mv -v *\_$CURID.* $CURID 2> /dev/null
        mv -v $CURID\_* $CURID 2> /dev/null
        mv -v */$CURID\_* $CURID 2> /dev/null
        mv -v */*\_$CURID.* $CURID 2> /dev/null
    fi
done
find . -type d -empty -exec rmdir {} \;
echo Hurray, everything has been sorted out!

Cela semble marcher mais ça ne me parait pas super optimisé. Si jamais quelqu'un a une suggestion à faire où un conseil à me donner étant que je ne connais pas trop, c'est avec plaisir smile

EDIT:
en fait il y a problème si je tombe sur un fichier ayant comme nom, par exemple: 12345_bob_marley_34days.mov
Parce qu'il va me récupérer le 34 aussi. En fait, j'aimerais limiter le egrep à la première série de digit rencontrée.
EDIT2: facile en fait tongue

Dernière modification par Rolinh (Le 16/05/2011, à 14:51)

Hors ligne

#1942 Le 16/05/2011, à 15:05

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

Ils sont passés où les codeurs??

Hors ligne

#1943 Le 16/05/2011, à 15:30

The Uploader

Re : /* Topic des codeurs couche-tard [4] */

Celui ci fait du Rails et a un bash plus que moyen incorporé. ^^

Un peu de patience. wink


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1944 Le 16/05/2011, à 15:59

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

Je croyais que les travailleurs du rails étaient toujours en grève en France big_smile

Mon bash aussi est très très moyen...
J'attends un spécialiste du bash alors wink

Hors ligne

#1945 Le 16/05/2011, à 16:10

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Rolinh a écrit :

Plop les codeurs,

je suis pas trop habitué des scripts bash mais j'ai dû en écrire un pour un pote.

Le problème:
il y a un dossier, contenant des fichiers *.mov, *.jpg et *.xml ainsi qu'éventuellement un dossier contenant d'autres de ces types de fichiers dont le nom contient un id, qui peut être n'importe où. Exemple:
234455_Seal_houp.mov, unit_1840.xml, 234455_Seal_houp.png, unit_184056.xml, unit_234455.xml
Le but étant de récupérer cette ID, de créer un dossier du nom de l'ID et de déplacer tous les fichiers ayant cette ID dans le nom dans le dossier créé.

Ma solution:

#!/bin/bash
# This script creates folders in which to move files according to their
# ID given in their filename as in, for example, 12345_bob_marley_london.mov
# 12345 would be the ID

echo Yay, I will clean YOUR mess...
echo Moving files:
find -P `pwd` -maxdepth 2 | sed 's!.*/!!' | while read line; do
    CURID=$(echo $line | egrep -o *'[[:digit:]]+'* )
    if [ "$CURID" != "" ]; then
        mkdir -p $CURID
        mv -v *\_$CURID.* $CURID 2> /dev/null
        mv -v $CURID\_* $CURID 2> /dev/null
        mv -v */$CURID\_* $CURID 2> /dev/null
        mv -v */*\_$CURID.* $CURID 2> /dev/null
    fi
done
find . -type d -empty -exec rmdir {} \;
echo Hurray, everything has been sorted out!

Cela semble marcher mais ça ne me parait pas super optimisé. Si jamais quelqu'un a une suggestion à faire où un conseil à me donner étant que je ne connais pas trop, c'est avec plaisir smile

EDIT:
en fait il y a problème si je tombe sur un fichier ayant comme nom, par exemple: 12345_bob_marley_34days.mov
Parce qu'il va me récupérer le 34 aussi. En fait, j'aimerais limiter le egrep à la première série de digit rencontrée.
EDIT2: facile en fait tongue

Bon, optimisations de base et utilisation d’un nom de variable approprié, plus nettoyage du cafouillage sur les mv :

#!/bin/bash
# This script creates folders in which to move files according to their
# ID given in their filename as in, for example, 12345_bob_marley_london.mov
# 12345 would be the ID

echo 'Yay, I will clean YOUR mess...'
echo 'Moving files:'
while read file; do
    CURID=$(egrep -o *'[[:digit:]]+'* <<< $file)
    if [ "$CURID" ]; then
        mkdir -p $CURID
        SAMEID=$(ls | grep '\(^\|_\)'$CURID'\($\|_\)')
        mv -v "$SAMEID" $CURID 2>/dev/null
    fi
done < <(find -P `pwd` -maxdepth 2 | sed 's!.*/!!')
find . -type d -empty -exec rmdir {} \;
echo 'Hurray, everything has been sorted out!'

Bon, après j’ai encore à proposer, mais un peu plus tard. Là, c’est déjà bien dégrossi…

Dernière modification par Pylade (Le 16/05/2011, à 16:15)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1946 Le 16/05/2011, à 16:31

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

Mmmh, je vais tester ça mais il me semble que le comportement du script est modifié.

EDIT: je confirme: ton script ne fonctionne pas wink
EDIT2: ceci dit, j'apprécie le fait que tu te sois penché dessus smile

Dernière modification par Rolinh (Le 16/05/2011, à 16:42)

Hors ligne

#1947 Le 16/05/2011, à 16:50

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Ah bon ?
C’est quoi le problème ? Ça vient des lignes de mv ?
Je vais voir ça…


Au pire, tu peux remettre les mv comme avant (c’est moche, mais bon…), le reste des modifications c’est juste des changements de syntaxe.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1948 Le 16/05/2011, à 16:56

Rolinh

Re : /* Topic des codeurs couche-tard [4] */

Mmm, je ne crois pas que ça vienne de la ligne des mv (je savais bien que la mienne est moche tongue)
Je pense à l'espace dans le double chevron après le done.
Et ça veut dire quoi un triple chevron d'ailleurs?

EDIT: mmmh non. Je ne sais pas trop ce qui cloche en fait.

EDIT2: comme ça ça marche mais il y a toujours les mv pas beau ^^

#!/bin/bash
# This script creates folders in which to move files according to their
# ID given in their filename as in, for example, 12345_bob_marley_london.mov
# 12345 would be the ID

echo 'Yay, I will clean YOUR mess...'
echo 'Moving files:'
while read file; do
    CURID=$(egrep -o *'[[:digit:]]+'* <<< $file)
    if [ "$CURID" != "" ]; then
        mkdir -p $CURID
        mv -v *\_$CURID.* $CURID 2> /dev/null
        mv -v $CURID\_* $CURID 2> /dev/null
        mv -v */$CURID\_* $CURID 2> /dev/null
        mv -v */*\_$CURID.* $CURID 2> /dev/null
    fi
done < <(find -P `pwd` -maxdepth 2 | sed 's!.*/!!')
find . -type d -empty -exec rmdir {} \;
echo 'Hurray, everything has been sorted out!'

Dernière modification par Rolinh (Le 16/05/2011, à 17:08)

Hors ligne

#1949 Le 16/05/2011, à 17:12

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Chez moi, j’ai un bug absolument incompréhensible. Mais il ne vient pas de ce que j’ai modifié…
Il est quelque part entre le if et le mkdirhmm


Le triple chevron, c’est pour alimenter l’entrée standard avec une chaîne à la place du clavier.

Et sinon, ce n’est pas un double chevron, mais un simple chevron suivi d’un <(…), qui écrit la sortie standard d’une commande dans un fichier de périphérique, et qui se substitue par le nom de ce fichier.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1950 Le 16/05/2011, à 17:16

Pylades

Re : /* Topic des codeurs couche-tard [4] */

Au fait, -p à mkdir ne sert à rien.
Et normalement, if [ $CURID ] devrait suffire… je vais regarder si ça vient de là, cela dit…


(Quoi qu’il en soit, if [ -n "$CURID" ] c’est de toutes façons plus joli que if [ "$CURID" != "" ]…)

Dernière modification par Pylade (Le 16/05/2011, à 17:16)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne