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.

#27151 Le 01/03/2010, à 12:08

\\Ouranos//

Re : Topic des couche-tard (30)

rmy a écrit :
tshirtman a écrit :

Si j'ai dormi, entre 23h et minuit,

/me, pleins de mauvaise foi, retire 7 points à rmy tongue


oupa

/me, vangeur, dessoude un à un tous les composants du PCB du DD de tshirtman, et garde l'ouverture et la rayure des plateaux au "flex" comme moyen de pression de grande envergure !

tongue (aussi!)

lol:lol::lol:


Ubuntu facile, c'est :
- Dire "Bonjour"
- Lire la doc et les règles du forum avant de poster. Savoir poser une question intelligemment.
- Mettre des balises url autour des liens et un tiret à su.

Hors ligne

#27152 Le 01/03/2010, à 12:21

tshirtman

Re : Topic des couche-tard (30)

Le Rouge a écrit :

Aujourd'hui en TD d'info : les algorithmes de tri roll

Du coup, baaah... Je plope

c'est intéressant quand même, j'ai finis par comprendre le qsort dans un td comme ça moi ^^ (enfin suffisamment pour le ré-implémenter correctement en DS sur table, pour la première fois ^^)

Hors ligne

#27153 Le 01/03/2010, à 12:41

Dr Le Rouge

Re : Topic des couche-tard (30)

M'en était bouffé en long en large et en travers en PREPA...

Et la POO c'est tout pourri pour faire du tri sur arbre ><


C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog

Hors ligne

#27154 Le 01/03/2010, à 12:42

rmy

Re : Topic des couche-tard (30)

hé, les pros du bash, je suis en train de faire mon premier script un peu intéressant, et je galère parce que je n'y connais rien. Ça vient doucement mais je bute sur un truc :

Actuellement, je veux stocker la liste de tous les fichiers d'un répertoire et leur somme de contrôle dans un fichier, et dans un autre que la somme de contrôle...

J'ai donc ça :

find $1 -type f -print0 | xargs -0 md5sum > .comparmy/full.md5

et ça

find $1 -type f -print0 | xargs -0 md5sum | cut -c -32 > .comparmy/$1.md5

Mon esprit affuté se dit qu'il doit bien y avoir moyen de faire ça en une ligne non ?
Mais comment récupérer alors le retour de la première commande puisque la sortie est redirigée vers le fichier "full.md5" ??

Hors ligne

#27155 Le 01/03/2010, à 12:45

\\Ouranos//

Re : Topic des couche-tard (30)

Le Rouge a écrit :

M'en était bouffé en long en large et en travers en PREPA...

Et la POO c'est tout pourri pour faire du tri sur arbre ><

Pan.


Ubuntu facile, c'est :
- Dire "Bonjour"
- Lire la doc et les règles du forum avant de poster. Savoir poser une question intelligemment.
- Mettre des balises url autour des liens et un tiret à su.

Hors ligne

#27156 Le 01/03/2010, à 12:50

tshirtman

Re : Topic des couche-tard (30)

:]

la POO n'est pas la solution ultime à tous les problèmes smile

implémente les tris en fonctionnels pour embêter tes profs (et c'est sûrement un exercice intellectuel très enrichissant ^^).

Hors ligne

#27157 Le 01/03/2010, à 12:56

Dr Le Rouge

Re : Topic des couche-tard (30)

tshirtman a écrit :

:]

la POO n'est pas la solution ultime à tous les problèmes smile

Ca, je n'en doute pas une seconde ! Mais on ne me laisse pas le choix (en théorie tongue)

implémente les tris en fonctionnels pour embêter tes profs

Je ne t'ai pas attendu big_smile


C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog

Hors ligne

#27158 Le 01/03/2010, à 13:02

rmy

Re : Topic des couche-tard (30)

Vous faites les malins avec votre POO et vos algo de tri, mais pour mon bash... il n'y a personne ! mad lol

Hors ligne

#27159 Le 01/03/2010, à 13:15

tshirtman

Re : Topic des couche-tard (30)

rmy a écrit :

hé, les pros du bash, je suis en train de faire mon premier script un peu intéressant, et je galère parce que je n'y connais rien. Ça vient doucement mais je bute sur un truc :

Actuellement, je veux stocker la liste de tous les fichiers d'un répertoire et leur somme de contrôle dans un fichier, et dans un autre que la somme de contrôle...

J'ai donc ça :

find $1 -type f -print0 | xargs -0 md5sum > .comparmy/full.md5

et ça

find $1 -type f -print0 | xargs -0 md5sum | cut -c -32 > .comparmy/$1.md5

Mon esprit affuté se dit qu'il doit bien y avoir moyen de faire ça en une ligne non ?
Mais comment récupérer alors le retour de la première commande puisque la sortie est redirigée vers le fichier "full.md5" ??

benÏ…

cut -c -32 .comparmy/full.md5 > .comparmy/$1.md5

sinon si tu veux tout faire en une ligne utilise "tee".

Dernière modification par tshirtman (Le 01/03/2010, à 13:18)

Hors ligne

#27160 Le 01/03/2010, à 13:34

rmy

Re : Topic des couche-tard (30)

oui c'est bien ça, c'est tee, mais est-ce que ça fait gagner du temps ?

EDIT : oui, rtfm

Et voilà mon premier script...
Les pros, si vous voulez vous pencher sur la question...

#!/bin/bash
# comparmy créé le 1/03/2010 par rmy
# Licence CC-BY-SA
# sabatier"point"remy at free"point"fr"
# comparaison récursive de trois dossiers pour aider à organiser les sauvegardes
# brouillon par rmy, à améliorer grandement. Peut-être ce type d'outil existe-t-il déjà, mais je n'ai pas trouvé mon bonheur. C'est mon premier script bash, améliorez-le...
# Usage : 
# comparmy.sh dossier1 dossier2 dossier3
# Objet : comparaison complète de chacun des dossiers pour trouver les doublons de l'un à l'autre. Peut-être utile pour gérer les sauvegardes...

# à optimiser probablement en utilisant join ou comm
# à améliorer en vérifiant l'existance de doublons dans chaque dossier lui-même
# à améliorer en proposant des options pour rendre la sortie utilisable -> uniquement les md5, uniquement un cas de figure précis... pour l'utiliser par exemple sur de la copie ou supression automatisée...

# Prévoir vérification de présence de 3 dossiers ou prendre un fichier vide si manquant et suppression des fichiers temporaires (que l'on peut conserver avec une option à passer)

#Créer un dossier pour stockage des fichiers temporaires 
mkdir .comparmy

#Créer fichiers listes md5 et liste complète
find $1 -type f -print0 | xargs -0 md5sum |tee .comparmy/full.md5 | cut -c -32 > .comparmy/$1.md5
find $2 -type f -print0 | xargs -0 md5sum |tee -a .comparmy/full.md5 | cut -c -32 > .comparmy/$2.md5
find $3 -type f -print0 | xargs -0 md5sum |tee -a .comparmy/full.md5 | cut -c -32 > .comparmy/$3.md5


#Trier fichiers listes md5
cd .comparmy
sort $1.md5 > $1.md5.sorted
sort $2.md5 > $2.md5.sorted
sort $3.md5 > $3.md5.sorted
sort full.md5 > full.md5.sorted

#Comparer les fichiers listes md5 pour retourner :
# Les doublons dans $1, les doublons dans $2 les doublons dans $3 << pas implémenté, à prévoir
# Les fichiers qui n'existent que dans $1, que dans $2, que dans $3
# Les fichiers qui n'existent que dans $1et$2, que dans $1et$3, que dans $2et$3
# Les fichiers qui existent dans les trois 

#dans $1, pas dans $2
diff $1.md5.sorted $2.md5.sorted | grep '<' | cut -c 3- > anotb.diff
#dans $2, pas dans $1
diff $1.md5.sorted $2.md5.sorted | grep '>' | cut -c 3- > bnota.diff
#dans $1et$2
diff $1.md5.sorted anotb.diff | grep '<' | cut -c 3- > aandb.diff

#dans $1, pas dans $3
diff $1.md5.sorted $3.md5.sorted | grep '<' | cut -c 3- > anotc.diff
#dans $3, pas dans $1
diff $1.md5.sorted $3.md5.sorted | grep '>' | cut -c 3- > cnota.diff
#dans $1et$3
diff $1.md5.sorted anotc.diff | grep '<' | cut -c 3- > aandc.diff

#dans $2, pas dans $3
diff $2.md5.sorted $3.md5.sorted | grep '<' | cut -c 3- > bnotc.diff
#dans $3, pas dans $2
diff $2.md5.sorted $3.md5.sorted | grep '>' | cut -c 3- > cnotb.diff
#dans $2et$3
diff $2.md5.sorted bnotc.diff | grep '<' | cut -c 3- > bandc.diff

#dans $1 seult
diff anotb.diff $3.md5.sorted | grep '<' | cut -c 3- > aseult.diff
#dans $2 seult
diff bnota.diff $3.md5.sorted | grep '<' | cut -c 3- > bseult.diff
#dans $3 seult
diff cnota.diff $2.md5.sorted | grep '<' | cut -c 3- > cseult.diff

#dans $1et$2 mais pas $3
diff aandb.diff $3.md5.sorted | grep '<' | cut -c 3- > abseul.diff
#dans $1et$3 mais pas $2
diff aandc.diff $2.md5.sorted | grep '<' | cut -c 3- > acseul.diff
#dans $2et$3 mais pas $1
diff bandc.diff $1.md5.sorted | grep '<' | cut -c 3- > bcseul.diff

#dans les trois
diff aandb.diff abseul.diff | grep '<' | cut -c 3- > tous.diff

#fichier de sortie :
echo "****************DANS TOUS" > retour
while read line
do 
	echo $line >> retour
	cat full.md5 | grep $line | cut -c 33- >> retour
done < tous.diff

echo "****************DANS $1 SEULEMENT" >> retour
while read line
do 
	echo $line >> retour
	cat full.md5 | grep $line | cut -c 33- >> retour
done < aseult.diff 

echo "****************DANS $2 SEULEMENT" >> retour
while read line
do 
	echo $line >> retour
	cat full.md5 | grep $line | cut -c 33- >> retour
done < bseult.diff 

echo "****************DANS $3 SEULEMENT" >> retour
while read line
do 
	echo $line >> retour
	cat full.md5 | grep $line | cut -c 33- >> retour
done < cseult.diff 

echo "****************DANS $1 ET $2 SEULEMENT" >> retour
while read line
do 
	echo $line >> retour
	cat full.md5 | grep $line | cut -c 33- >> retour
done < abseul.diff 

echo "****************DANS $1 ET $3 SEULEMENT" >> retour
while read line
do 
	echo $line >> retour
	cat full.md5 | grep $line | cut -c 33- >> retour
done < acseul.diff 

echo "****************DANS $2 ET $3 SEULEMENT" >> retour
while read line
do 
	echo $line >> retour
	cat full.md5 | grep $line | cut -c 33- >> retour
done < bcseul.diff 

cat retour

Dernière modification par rmy (Le 01/03/2010, à 21:41)

Hors ligne

#27161 Le 01/03/2010, à 13:52

tshirtman

Re : Topic des couche-tard (30)

/me revient de manger…

par rapport à ta version (avec deux find) oui, par rapport à la mienne (la deuxième ligne utilise le résultat de le première) c'est bien plus discutable... mais tu peux faire

find -type f -print0 |xargs -0 md5sum |tee  .comparmy/full.md5| cut -c -32 > .comparmy/$1.md5

edit: /me aurait du refresh xD

Dernière modification par tshirtman (Le 01/03/2010, à 13:53)

Hors ligne

#27162 Le 01/03/2010, à 15:36

rmy

Re : Topic des couche-tard (30)

Ah oui mais non... parce que dans l'histoire, je crois que ta solution risque de ne me garder que les 32 premiers caractères du fichier, pas de chaque ligne, si ?

EDIT : je parlais de la solution précédente, hein... Celle avec les deux lignes ou la deuxième prend le résultat de la première.

Dernière modification par rmy (Le 01/03/2010, à 15:37)

Hors ligne

#27163 Le 01/03/2010, à 15:44

tshirtman

Re : Topic des couche-tard (30)

non non, cut marche sur toutes les lignes, c'est un découpage en colonne... smile

(au contraire de head, tail, grep et autres, qui permettent de découpages en lignes).

Hors ligne

#27164 Le 01/03/2010, à 15:49

rmy

Re : Topic des couche-tard (30)

classe !

Hors ligne

#27165 Le 01/03/2010, à 16:01

\\Ouranos//

Re : Topic des couche-tard (30)

C'était l'après-midi "TD de bash" sur ubuntu-fr.


Ubuntu facile, c'est :
- Dire "Bonjour"
- Lire la doc et les règles du forum avant de poster. Savoir poser une question intelligemment.
- Mettre des balises url autour des liens et un tiret à su.

Hors ligne

#27166 Le 01/03/2010, à 18:02

edge_one

Re : Topic des couche-tard (30)

p'tain de tempête!

connexion internet coupée pendant 30H... et un connard en as profité pour essayer de me voler ma voiture ><.

#27167 Le 01/03/2010, à 18:11

rmy

Re : Topic des couche-tard (30)

J'espère qu'elle n'a pas trop souffert. J'espère que lui, oui.

Dernière modification par rmy (Le 01/03/2010, à 18:11)

Hors ligne

#27168 Le 01/03/2010, à 18:21

edge_one

Re : Topic des couche-tard (30)

1 vitre éclatée, des rayures sur le tableau de bord, les garnitures de portes en velours abimés tout comme le cuir et un essuie glace arraché  sad

j'aimerais bien chopé le connard... il doit encore être en train de se demander où on met la clef...

#27169 Le 01/03/2010, à 18:42

Zeibux

Re : Topic des couche-tard (30)

rmy a écrit :

@Zeibux : Je n'ai pas bien compris ta question... Le prix libre, c'est ma pratique dans mon entreprise. Mon aide sur le forum est bénévole bien entendu... Par contre, je n'ai pas l'intention d'appliquer ce prix libre pour des prestations de services pour des entreprises. Il y a des pros qui font payer cher aux pros pour ça... ma démarche est de fournir mes services à des particuliers qui n'ont ni les compétences pour le faire seul, ni l'argent pour payer un service actuellement réservé aux entreprises vu le prix...

Donc du coup, je répond: On est d'accord  alors. Je ne parle que pour le forum bien sur, si tu tombe sur quelqu'un qui à besoin d'aide, tu le fais, et si il n'y arrive pas tout seul, il sait que toi tu peu le faire mais c'est pas de la pub. On ce comprend? Es-ce qu'on parle de la même chose ? roll tongue


Croix de bois croix de fer, si je mens, j'me tape une bière
La Valeur sur, c'est sur qu'il avale!
je veux bien qu'on pisse dans un violon, mais.. En rythme non d'un chien!
[Mémoire virtuelle limitée] encrypté, et dans un format obscur, propriétaire et non documenté...

Hors ligne

#27170 Le 01/03/2010, à 19:56

Sir Na Kraïou

Re : Topic des couche-tard (30)

Rha, putain... J'ai rarement entendu autant de conneries en une seule journée ! yikes


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

#27171 Le 01/03/2010, à 20:20

edge_one

Re : Topic des couche-tard (30)

Р'tite G☢gole mad a écrit :

Rha, putain... J'ai rarement entendu autant de conneries en une seule journée ! yikes

vivement que tu rentre dans le monde actif... big_smile

#27173 Le 01/03/2010, à 20:33

Kanor

Re : Topic des couche-tard (30)

Р'tite G☢gole mad a écrit :

Rha, putain... J'ai rarement entendu autant de conneries en une seule journée ! yikes

Tu a des perles à nous proposer ?

Hors ligne

#27174 Le 01/03/2010, à 21:27

nesthib

Re : Topic des couche-tard (30)

@rmy, un peu en retard :

for file in "$FOLDER/*"
do
    [ -f "$file" ] && (
    MD5=$(md5sum "$file")
    cat <<<$MD5 >>files.txt
    cat <<<${MD5% *} >>md5.txt )
done

ou en une ligne :

for file in "$FOLDER/*" ; do [ -f "$file" ] && (MD5=$(md5sum "$file") ; cat <<<$MD5 >>files.txt ; cat <<<${MD5% *} >>md5.txt ) ; done

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#27175 Le 01/03/2010, à 21:36

rmy

Re : Topic des couche-tard (30)

Zeibux a écrit :

Donc du coup, je répond: On est d'accord  alors. Je ne parle que pour le forum bien sur, si tu tombe sur quelqu'un qui à besoin d'aide, tu le fais, et si il n'y arrive pas tout seul, il sait que toi tu peu le faire mais c'est pas de la pub. On ce comprend? Es-ce qu'on parle de la même chose ? roll tongue

Heu... peut-être ?

Tu as parfois l'esprit suffisamment tordu pour que je ne me risque pas à garantir que ce qu'il y a dans ma tête est pareil que dans la mienne. Surtout quand tu dis des trucs comme ça il y a moins de 24H...

Zeibux a écrit :

;`..   ytrop sou btime!Chui trop R&id A- je ùe cpuche et je vous  bonsoir?  Rmy, je te rep deméin

tongue

Mais en gros je pense qu'on est assez d'accord.

@Nesthib heu... je vois pas bien ce que ça apporte de plus par rapport à la solution avec tee. C'est sans doute super ce que tu as fait, mais si tu ne m'expliques pas en quoi c'est mieux, je n'ai pas les capacités de trouver seul. Et... c'est pas récursif, si ?

Edit : @ les gens de l'ouest : tout va bien chez vous ? Il y a quelqu'un qui sait dans quel état sont les immeubles "Ponant 3" à la Rochelle, sur la plage des minimes ?

Dernière modification par rmy (Le 01/03/2010, à 21:39)

Hors ligne