Bonjour à toutes et à tous.
J'ai quelques questions concernant un code ksh que je suis en train d'écrire :
Il supprime les blancs dans les noms de fichiers et de dossier et supprime les ^M dans les fichiers.
Le truc c'est que je ne sais pas trop quelle est la commande à utiliser pour savoir si une ligne de ma boucle for est un dossier ou pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 #!/usr/bin/ksh # # Supprimer les Blancs des noms de fichiers d'un dossier donne # Supprimer les ^M contenus dans les fichiers d'un dossier donne (fonction dos2Unix non dispo) # function FormatFic($DIR_SRC, $DIR_DEST) { for i in `ls $DIR_SRC` do if($i est un dossier) then mkdir $DIR_DEST/$i FormatFic($DIR_SRC/$i, $DIR_DEST/$i) else filename=`basename $i` if ! [ $filename -z ] then nouveau_nom=`echo $filename | sed -e 's/ /_/'` mv $DIR_SRC/$filename $DIR_SRC/$nouveau_nom sed -e 's/^M//' $DIR_SRC/$nouveau_nom > $DIR_DST/$nouveau_nom fi fi done rm -rf $DIR_SRC } # # VARIABLES DE BASE # REP_SRC=$1 REP_DEST=$2 # # Operations preliminaires # rm -rf $REP_SRC tar xvf $REP_SRC".tar" rm -rf $REP_DEST mkdir $REP_DEST # # appel de la fonction # FormatFic($REP_SRC, $REP_DEST)
Je ne suis pas sur non plus de ma syntaxe pour les paramètres de ma fonction. Est-ce bien comme cela qu'il faut faire ?
Merci d'avance pour votre aide.
Bahan
Partager