Archiv verlassen und diese Seite im Standarddesign anzeigen : Leerzeichen aus dateinamen entfernen
meinereinerseiner
28-05-2001, 13:38
Hallo,
für mein fotoalbum muss ich die bilddateien umbennen. das ausgangsformat ist dabei unbekannt (leerzeichen, klammern, was windows so hergibt *g*)
nun will ich diese per skript umbennen, so das sie lediglich fortlaufend nuemeriert werden.
mein ansatz:
#!/bin/sh
#
dat=`ls -1`
zahl=1
for i in $dat; do
mv "$dat" nach $zahl.jpg
i=`expr $zahl + 1`
done
ja, und das will nicht!
der tom
die shell experten werden wahrscheinlich ein lösung mit änderung der ifs variablen oder sowas finden, aber mit perl gehts glaube ich einfacher
opendir(DIR, $path);
@files = readdir(DIR);
$i=0;
foreach $file (@files) {
if (-f $path.$file) {
rename($path.$file, $path.$i.jpg);
$i++;
}
}
closedir(DIR);
hm, der Ansatz ist doch gut; es sind aber einige typos/Denkfehler drin gewesen:
:
#!/bin/sh
filenames=`ls -1 -f *`
count=1
for i in $filenames
<TAB>do
<TAB><TAB>mv "$i" $count.jpg
<TAB><TAB>count=$[ $count + 1 ]
<TAB>done
exit 0
meinereinerseiner
28-05-2001, 17:27
Hallo,
die Shell variante geht leider nicht!
devil:~/entwicklung/Mixed # ls -al
total 532
drwxr-xr-x 2 funwg users 4096 May 28 18:07 .
drwxr-xr-x 4 root root 4096 May 28 18:07 ..
-rwx------ 1 funwg users 122 May 28 18:07 1.jpg
-rw-r--r-- 1 funwg users 44454 May 26 16:43 Jules Geburtstag 01 (02_1999).jpg
-rw-r--r-- 1 funwg users 46743 May 26 16:43 Jules Geburtstag 02 (02_1999).jpg
-rw-r--r-- 1 funwg users 46868 May 26 16:43 Jules Geburtstag 03 (02_1999).jpg
-rw-r--r-- 1 funwg users 40570 May 26 16:43 Jules Geburtstag 04 (02_1999).jpg
-rw-r--r-- 1 funwg users 36102 May 26 16:44 Jules Geburtstag 05 (02_1999).jpg
-rw-r--r-- 1 funwg users 37521 May 26 16:44 Jules Geburtstag 06 (02_1999).jpg
-rw-r--r-- 1 funwg users 49597 May 26 16:44 Jules Geburtstag 07 (02_1999).jpg
-rw-r--r-- 1 funwg users 42380 May 26 16:44 Jules Geburtstag 08 (02_1999).jpg
devil:~/entwicklung/Mixed # ./1.jpg
mv: `1.jpg' and `1.jpg' are the same file
mv: Jules: No such file or directory
mv: Geburtstag: No such file or directory
mv: 01: No such file or directory
mv: (02_1999).jpg: No such file or directory
mv: Jules: No such file or directory
mv: Geburtstag: No such file or directory
mv: 02: No such file or directory
mv: (02_1999).jpg: No such file or directory
mv: Jules: No such file or directory
mv: Geburtstag: No such file or directory
mv: 03: No such file or directory
mv: (02_1999).jpg: No such file or directory
mv: Jules: No such file or directory
mv: Geburtstag: No such file or directory
mv: 04: No such file or directory
mv: (02_1999).jpg: No such file or directory
mv: Jules: No such file or directory
mv: Geburtstag: No such file or directory
mv: 05: No such file or directory
mv: (02_1999).jpg: No such file or directory
mv: Jules: No such file or directory
mv: Geburtstag: No such file or directory
mv: 06: No such file or directory
mv: (02_1999).jpg: No such file or directory
und das perlscript sagt und tut leider auch nix. :-(
wo liegt der Fehler?
der tom
du hast aber schon $path auf den pfad gesetzt, also z.b.
$path=`pwd`;
hab nochmal nachgedacht, geht auch einfach mit shell
count=0
for file in *; do
if test -f "$file"; then
mv "$file" $count.jpg
count=$[$count+1]
fi
done
mit ls funktioniert es definitv nur, wenn man denn IFS ändert
z.b.
IFS=\n
files=`ls -1`
aber so richtig blick ichs auch nicht, deswegen nehm ich lieber perl ;)
meinereinerseiner
28-05-2001, 18:53
Hi,
so, nun tut beides beim perlscript hatte ich was verquerches eingegeben und bei der shell variante war es der IFS.
jetzt tut es , DANKE!
der tom
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.