![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité régulier
![]() Date d'inscription: mars 2008
Messages: 12
|
Bonjour,
je débute en Unix et je rencontre le problème suivant: je suis dans une boucle FOR et je voudrais obtenir une variable filecourt qui soit les 4 premiers caractères de filelong + son extension (ici ".dat") le script est comme ceci: for filelong in `ls ${ALU_STC}/*.dat` do ... done où ${ALU_STC}/ est le chemin de mes fichiers .dat exemple: ALU_STC=/data filelong a alors la valeur /data/titi_123456789.dat et je voudrai obtenir: titi.dat chaque fois que j'ai essayé de faire une action, il travaille sur les donnéesdu fichier mais pas ur le nom du fichier. Merci pour votre aide |
|
|
|
|
|
#2 (permalink) |
|
Membre Expert
![]() Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
|
tu y était presque oui
pour tout dans liste faire mv chemin/fichierlong chemin/$( echo $(lister fichierlong couper à 4 ; couper à .+3)) fin L'idée est de faire de la découpe des 3 éléments dans une Code :
ext=$(echo $filelong | cut -d"." -f2)
corp=$(echo $filelong | awk -F "/" '{print $NF}' | cut -c1-4)
mv ${filelong} $(echo ${corp}'.'${ext})
Code :
XS1:root #mkdir /tmp/test
XS1:root #for i in 1 2 3 4 5 6 ; do touch /tmp/test/tit${i}123456789.dat ; done
XS1:root #ls /tmp/test
tit1123456789.dat tit2123456789.dat tit3123456789.dat tit4123456789.dat tit5123456789.dat tit6123456789.dat
XS1:root #ALU_STC=/tmp/test
XS1:root #for filelong in `ls ${ALU_STC}/*.dat`
> do
> ext=$(echo $filelong | cut -d"." -f2)
> corp=$(echo $filelong | awk -F "/" '{print $NF}' | cut -c1-4)
> mv ${ALU_STC}/${filelong} ${ALU_STC}/$(echo ${corp}'.'${ext})
> done
XS1:root #cd /tmp/test
XS1:root #ls *.dat
tit1.dat tit2.dat tit3.dat tit4.dat tit5.dat tit6.dat
Dernière modification par frp31 ; 07/05/2008 à 12h49 |
|
|
|
![]() |
![]() |
||
nom de fichier plus court
|
||
| Outils de la discussion | |
|
|