[Unix] déplacer fichier selon chaine contenu
Résolu/Fermé
jon_chninkel
Messages postés
8
Date d'inscription
vendredi 8 septembre 2006
Statut
Membre
Dernière intervention
13 octobre 2006
-
8 sept. 2006 à 10:04
jon_chninkel Messages postés 8 Date d'inscription vendredi 8 septembre 2006 Statut Membre Dernière intervention 13 octobre 2006 - 13 oct. 2006 à 08:57
jon_chninkel Messages postés 8 Date d'inscription vendredi 8 septembre 2006 Statut Membre Dernière intervention 13 octobre 2006 - 13 oct. 2006 à 08:57
A voir également:
- [Unix] déplacer fichier selon chaine contenu
- Fichier rar - Guide
- Déplacer une colonne excel - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
10 réponses
tafiscobar
Messages postés
1277
Date d'inscription
jeudi 7 décembre 2000
Statut
Contributeur
Dernière intervention
26 février 2009
177
8 sept. 2006 à 10:26
8 sept. 2006 à 10:26
salut, ben il n'y a pas d'autre moyen. Il n'y a aucun moyen de lire ce qui se trouve dans un fichier sans l'avoir ouvert. Il n'y a aussi aucun moyen de lire d'un seul coup plusieurs fichiers, a moins de travailler avec les blocs du disque dur mais la c'est une autre paire de manche (programmation bas niveau).
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
8 sept. 2006 à 10:29
8 sept. 2006 à 10:29
Salut,
je pourrai le lancer avec une boucle sur chaque fichier et tester le retour d'un grep, mais je ne trouverai pas ça très propre.
Euh... Ben je vois pas comment faire sans une boucle et sans "grep".
Donc à mon avis c'est LA solution.
;-))
je pourrai le lancer avec une boucle sur chaque fichier et tester le retour d'un grep, mais je ne trouverai pas ça très propre.
Euh... Ben je vois pas comment faire sans une boucle et sans "grep".
Donc à mon avis c'est LA solution.
;-))
jon_chninkel
Messages postés
8
Date d'inscription
vendredi 8 septembre 2006
Statut
Membre
Dernière intervention
13 octobre 2006
8 sept. 2006 à 10:50
8 sept. 2006 à 10:50
bonjour
okay okay merci pour ces encouragements ;-)
à coup de for & de grep, je le posterai quand j'aurai réussi.
bye bye
okay okay merci pour ces encouragements ;-)
à coup de for & de grep, je le posterai quand j'aurai réussi.
bye bye
jon_chninkel
Messages postés
8
Date d'inscription
vendredi 8 septembre 2006
Statut
Membre
Dernière intervention
13 octobre 2006
8 sept. 2006 à 11:08
8 sept. 2006 à 11:08
bonjour
okay okay merci pour ces encouragements ;-)
à coup de for & de grep, je le posterai quand j'aurai réussi.
bye bye
okay okay merci pour ces encouragements ;-)
à coup de for & de grep, je le posterai quand j'aurai réussi.
bye bye
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jon_chninkel
Messages postés
8
Date d'inscription
vendredi 8 septembre 2006
Statut
Membre
Dernière intervention
13 octobre 2006
8 sept. 2006 à 11:10
8 sept. 2006 à 11:10
C'est bon !
#!/bin/sh
# arg1 = chaine
# arg2 = rep source
# arg3 = rep cible
REP=`ls $2`
echo "Début Recherche - Déplacement"
for FICHIER in $REP
do
if [ ! -d $2/$FICHIER ] ; then
if [ "`head -1 $2/$FICHIER | grep $1'`" ] ; then
echo "$FICHIER déplacé"
mv $2/$FICHIER $3/$FICHIER;
fi
fi
done
echo "."
Chouette. Maintenant je dois l'éprouver.
bye bye
#!/bin/sh
# arg1 = chaine
# arg2 = rep source
# arg3 = rep cible
REP=`ls $2`
echo "Début Recherche - Déplacement"
for FICHIER in $REP
do
if [ ! -d $2/$FICHIER ] ; then
if [ "`head -1 $2/$FICHIER | grep $1'`" ] ; then
echo "$FICHIER déplacé"
mv $2/$FICHIER $3/$FICHIER;
fi
fi
done
echo "."
Chouette. Maintenant je dois l'éprouver.
bye bye
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
8 sept. 2006 à 12:32
8 sept. 2006 à 12:32
Salut,
il me semble qu'on n'a pas besoin de for pour faire ça.
rgrep cherche de façon recursive
grep avec globalisation
ou combinaison find avec grep
lami20j
il me semble qu'on n'a pas besoin de for pour faire ça.
rgrep cherche de façon recursive
grep avec globalisation
ou combinaison find avec grep
lami20j
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
8 sept. 2006 à 14:06
8 sept. 2006 à 14:06
Salut lami20j,
La récursivité agit sur les répertoires, là notre ami "jon" ne parle pas de récursivité dans les sous-répertoires (à moins que je n'ai pas bien saisi l'énoncé du problème et dans ce cas là je m'en excuse par avance), mais d'une recherche dans UN répertoire d'une chaîne contenue dans les fichiers dudit répertoire et d'un déplacement le cas échéant.
Et même si récursivité il y avait, on serait quand même obligé d'utiliser une boucle pour lire chacun des fichiers, enfin il me semble ;-))
La récursivité agit sur les répertoires, là notre ami "jon" ne parle pas de récursivité dans les sous-répertoires (à moins que je n'ai pas bien saisi l'énoncé du problème et dans ce cas là je m'en excuse par avance), mais d'une recherche dans UN répertoire d'une chaîne contenue dans les fichiers dudit répertoire et d'un déplacement le cas échéant.
Et même si récursivité il y avait, on serait quand même obligé d'utiliser une boucle pour lire chacun des fichiers, enfin il me semble ;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
8 sept. 2006 à 14:13
8 sept. 2006 à 14:13
Salut,
mais d'une recherche dans UN répertoire d'une chaîne contenue dans les fichiers dudit répertoire et d'un déplacement le cas échéant.
Encore mieux.
on serait quand même obligé d'utiliser une boucle pour lire chacun des fichiers, enfin il me semble ;-))
pour l'instant je ne dit rien. je vais essayer ce soir puisque je crois que c'est possible, sinon je n'aurai pas écrit ;)
lami20j
mais d'une recherche dans UN répertoire d'une chaîne contenue dans les fichiers dudit répertoire et d'un déplacement le cas échéant.
Encore mieux.
on serait quand même obligé d'utiliser une boucle pour lire chacun des fichiers, enfin il me semble ;-))
pour l'instant je ne dit rien. je vais essayer ce soir puisque je crois que c'est possible, sinon je n'aurai pas écrit ;)
lami20j
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
8 sept. 2006 à 14:34
8 sept. 2006 à 14:34
re-
Bon, j'ai rien dit et t'as raison ;-((
Voilà les tests sans boucle, mais avec "awk" :
Bon, j'ai rien dit et t'as raison ;-((
Voilà les tests sans boucle, mais avec "awk" :
[jp@MDK tmpfs] $ ls -1 fich.1 fich.10 fich.2 fich.3 fich.4 fich.5 fich.6 fich.7 fich.8 fich.9 le_rep/ [jp@MDK tmpfs] $ cat fich.* Je contiens la chaîne Bonjour Je contiens la chaîne Aurevoir Je contiens la chaîne Aurevoir Je contiens la chaîne Bonjour Je contiens la chaîne Aurevoir Je contiens la chaîne Bonjour Je contiens la chaîne Aurevoir Je contiens la chaîne Bonjour Je contiens la chaîne Aurevoir Je contiens la chaîne Bonjour [jp@MDK tmpfs] $ ls le_rep/ [jp@MDK tmpfs] $ grep Bonjour $(ls -1) | cp $(awk -F":" '{ print $1 }') le_rep/ [jp@MDK tmpfs] $ ls le_rep/ fich.1 fich.3 fich.5 fich.7 fich.9 [jp@MDK tmpfs] $ cat le_rep/* Je contiens la chaîne Bonjour Je contiens la chaîne Bonjour Je contiens la chaîne Bonjour Je contiens la chaîne Bonjour Je contiens la chaîne Bonjour [jp@MDK tmpfs] $Merci lami20j ;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
8 sept. 2006 à 14:44
8 sept. 2006 à 14:44
Re,
Ben, de rien.
C'est toi qui a fait le boulot ;)
lami20j
Ben, de rien.
C'est toi qui a fait le boulot ;)
lami20j
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
8 sept. 2006 à 18:58
8 sept. 2006 à 18:58
Re,
voilà ma version
P.S. Jipicy c'est toi qui m'a appris xargs ;)
voilà ma version
lami20j@debian:~$ ls -1 salut*
salut1
salut2
salut3
salut4
salut5
salut6
salut7
salut8
salut9
lami20j@debian:~$ cat salut*
Bonjour
Au revoir
Bonjour
Au revoir
Bonjour
Au revoir
Bonjour
Au revoir
Bonjour
lami20j@debian:~$ ls -l trash/salut*
ls: trash/salut*: Aucun fichier ou répertoire de ce type
lami20j@debian:~$ egrep -l Bonjour salut* | xargs -i{} cp {} trash/
lami20j@debian:~$ ls -l trash/salut*
-rw-r--r-- 1 lami20j lami20j 8 2006-09-08 18:57 trash/salut1
-rw-r--r-- 1 lami20j lami20j 8 2006-09-08 18:57 trash/salut3
-rw-r--r-- 1 lami20j lami20j 8 2006-09-08 18:57 trash/salut5
-rw-r--r-- 1 lami20j lami20j 8 2006-09-08 18:57 trash/salut7
-rw-r--r-- 1 lami20j lami20j 8 2006-09-08 18:57 trash/salut9
lami20j@debian:~$ cat trash/salut*
Bonjour
Bonjour
Bonjour
Bonjour
Bonjour
lami20j@debian:~$
lami20j
P.S. Jipicy c'est toi qui m'a appris xargs ;)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
8 sept. 2006 à 19:05
8 sept. 2006 à 19:05
cp $(egrep -l Bonjour salut*) trash/;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
8 sept. 2006 à 19:11
8 sept. 2006 à 19:11
Ben, voilà.
Les maîtres doivent se reveiller de temps en temps.
Je n'aime pas l'idée d'avoir une seule solution ;)
TMTOWTDI
There's More Than One Way To Do It
That's wonderful!!!
Merci jipicy
lami20j
Les maîtres doivent se reveiller de temps en temps.
Je n'aime pas l'idée d'avoir une seule solution ;)
TMTOWTDI
There's More Than One Way To Do It
That's wonderful!!!
Merci jipicy
lami20j
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
8 sept. 2006 à 19:15
8 sept. 2006 à 19:15
Bon on va clôturer là les remerciements : Merci nous et merci les z'autres !
;-))
;-))
jon_chninkel
Messages postés
8
Date d'inscription
vendredi 8 septembre 2006
Statut
Membre
Dernière intervention
13 octobre 2006
9 sept. 2006 à 16:44
9 sept. 2006 à 16:44
Merci donc à tous, dont moi-même ;-)
bon week-end
bon week-end
jon_chninkel
Messages postés
8
Date d'inscription
vendredi 8 septembre 2006
Statut
Membre
Dernière intervention
13 octobre 2006
13 oct. 2006 à 08:57
13 oct. 2006 à 08:57
ma solution ne marche pas bien, en fait elle semble tout me déplacer ;-(
je réessayerai les autres
je réessayerai les autres
8 sept. 2006 à 10:31
Désolé pour le doublon ;-))