Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2425 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Lister en parallèle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lister en parallèle

n°1668545
marc90
Posté le 09-01-2008 à 18:40:35  profilanswer
 

Bonjour,
 
Voilà mon soucis, j'ai une liste de noms dans un fichier texte et un repertoire avec des fichiers.
Comment modifier le nom du 1er fichier du repertoire en le remplaçant par le 1er nom de la liste se trouvant dans le fichier texte.
Est-ce qu'il faut obligatoirement passer par un tableau afin de stocker les nom ou est-il possible de parcourir les 2 listes, listes des fichiers du repertoire et liste des noms, en parallèle?
 
Merci

mood
Publicité
Posté le 09-01-2008 à 18:40:35  profilanswer
 

n°1668588
Elmoricq
Modérateur
Posté le 09-01-2008 à 20:48:24  profilanswer
 

Sous quel système d'exploitation ?

n°1669036
marc90
Posté le 10-01-2008 à 15:16:03  profilanswer
 

Linux, en Shell
Pour l'instant pour faire correspondre les lignes j'ai mis un numéro en index de chaque nom et pour chaque ligne de ma 1ere liste je recherche la ligne correspondante dans la seconde liste en fonction du numero

n°1669052
Elmoricq
Modérateur
Posté le 10-01-2008 à 15:29:01  profilanswer
 

Utilise join pour rassembler les deux fichiers en un seul, puis parcours ce fichier pour faire un mv.

n°1669207
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 10-01-2008 à 17:27:17  profilanswer
 


    # fichier1.txt sert d'entrée au file descriptor 3 du shell courant  
    exec 3< fichier1.txt  
 
    # fichier2.txt sert d'entrée au file descriptor 4 du shell courant  
    exec 4< fichier1.txt  
 
    read <&3   # consomme une ligne de fichier1.txt  
    read <&3   # consomme la ligne suivante  
    while read ligne; do  
       blabla  
       read<&4 # consomme une ligne de fichier2.txt  
       blabla  
    done <&3   # consomme le reste


 
 
une possibilité parmi tant d'autre pour lire ligne par ligne 2 fichiers :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°1669274
marc90
Posté le 10-01-2008 à 18:37:11  profilanswer
 

Lorsque j'essaie d'afficher avec
 
while read ligne; do    
  read <&4;
  echo $ligne;
 done
 
celà ne fonctionne pas!

n°1669406
dreameddea​th
Posté le 11-01-2008 à 01:57:12  profilanswer
 

Si j'ai bien compris :
- il y a un fichier texte qui contient une liste de nom (une ligne par nom)
- il y a un répertoire qui contient un certain nombre de fichier
- il faut renomer les fichiers du répertoire (triés par ordre alphabetique) par le nom correspondant dans le fichier
 
Si c'est le cas, je verrais bien qqch du stype (attention pas testé)
 

Code :
  1. pos=1
  2. #boucle sur les fichier du repértoire courant
  3. for ficher_to_rename in `ls $REP`; do
  4.      # récupère la ligne ${pos} en supprimant les autres
  5.      nouveau_nom=`sed -e '${pos}! d'<$filename`
  6.      echo "Renomage de $ficher_to_rename en $nouveau_nom'
  7.      mv  $ficher_to_rename $REP/$nouveau_nom
  8.      ((pos+=1))
  9. done


 
A essayer

n°1669974
arsunik
ma tuxitude me beastifie
Posté le 11-01-2008 à 23:10:22  profilanswer
 

Une solution :
 


for i in *; do
    read new_name
    echo mv "$i" "$new_name"
done < fichier



---------------
[:arsunik]  Les tournois de badminton
n°1670023
marc90
Posté le 12-01-2008 à 10:50:48  profilanswer
 

Merci ArSunik ca fonctionne.
Pour chaque iteration cela prend une ligne du for et une ligne de fichier et les lignes suivantes pour les iterations suivantes. J'etais loin de penser à la ligne done < fichier


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Lister en parallèle

 

Sujets relatifs
création programme pour piloter le port parallèle[Résolu] Lister les champs d'une table sous access
lister le contenu d'un dossier en voyant le nom entierement[Résolu] Lister les fichiers d'un dossier
Lister ports disponibles -> donc non utilisésCréer un script permettant de lister dossier et sous-dossiers
Logiciel pour lister et proposer des vidéos sur son site ?Recherche code Borland sous xp carte parallele/i2c
[Résolu][MYSQL] lister les doublons + rapidement 
Plus de sujets relatifs à : Lister en parallèle


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)