Go Back   Les systèmes UNIX et Linux Forums > Top Forums > UNIX pour les nuls Questions et réponses
.
Google Site



UNIX pour les nuls Questions et réponses Si vous ne savez pas où poster un UNIX ou Linux question, post it here. Tous les systèmes UNIX et Linux, débutants bienvenus!

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 08-01-2008
Registered User
 

Date d'inscription: août 2008
Messages: 2
Advanced File Rename aider

Donc, je suis tellement nouveau que je ne peux même pas appeler moi-même un utilisateur unix. J'ai une aptitude à la programmation, mais je ne sais pas la langue. Quoi qu'il en soit, voici mon problème:

Je dois renommer un lot de fichiers qui ressemblent à:
2001_0001.asc
2001_0002.asc
.
.
.
2006_0548.asc

Les noms sont un code de date, mais elles doivent être modifiées de telle sorte que 2001_0001.asc devient 2000_183.asc, 2001_0184 devient 2001_001 et 2006_0548.asc devient 2006_365.asc.

oui, je pense qu'il devrait commencer à:

for i in `ls *`
faire

puis les choses deviennent un peu floues
Je vais maintenant convertir à la programmation semi-parler

split aaaa_bbbb.asc et en aaaa bbbb
interpréter cordes aaaa bbbb et que le nombre x et y respectivement,
si y - 183 <1,
alors x \u003d x - 1 et y '\u003d y - 183 + 365,
else x \u003d x et y '\u003d y - 183.
convertir des nombres x et y à cordes aaaa "et bbb" (notez les trois chiffres
bbb en ce que y '\u003d 1 se convertir à bbb' \u003d 001)
renommer le fichier à aaaa'_bbb i '. asc

toute aide serait appréciée
merci,
-TT
Liens Sponsorisés
  #2 (permalink)  
Old 08-01-2008
rubin's Avatar
Rubin rubin is offline Forum Advisor  
Registered User
 

Join Date: Nov 2007
Messages: 321

Code:
for i in *.asc
 
 do 
   
   a=${i%_*}; b=${i#*_}; c=${b%.*}
 
    if [ $(expr $c - 183) -lt 1 ]
      then
         x=$(expr $a - 1); y=$(printf "%03s\n" $(expr $c - 183 + 365))
         mv $i $x"_"$y.asc
      else 
         x=$a; y=$(printf "%03s" $(expr $c - 183))
         mv $i $x"_"$y.asc
    fi
 
done

Essayez d'abord avec echo, Puis de faire un renommage avec mv.
Liens Sponsorisés
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Hors tension


Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Renommer un nom de fichier Aswarth De programmation et de script Shell 0 06-04-2008 03:18 PM
Impossible de renommer le fichier MANISH KU De programmation et de script Shell 2 06-27-2007 05:07 AM
Renommer dossier redlotus72 UNIX pour les nuls Questions et réponses 1 03-09-2006 11:52 AM
la façon de renommer un fichier avant et après un ftp? forevercalz De programmation et de script Shell 2 10-28-2005 10:19 AM
Aide à renommer des fichiers multiples - changement de casse d'une partie du nom de fichier steve7 UNIX pour les nuls Questions et réponses 7 06-30-2005 02:41 PM



Toutes les heures sont au format GMT -4. Le temps est maintenant 01:06 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX et Linux Forums Copyright © 1993-2010. Tous droits Reserved.Ad Gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0