Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Leerzeichen aus dateinamen entfernen

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242

    Post Leerzeichen aus dateinamen entfernen

    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

  2. #2
    Registrierter Benutzer
    Registriert seit
    23.04.2001
    Ort
    Thüringen/BaWü
    Beiträge
    98

    Post

    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);

  3. #3
    kabalak
    Gast

    Post

    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

  4. #4
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242

    Question

    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

  5. #5
    Registrierter Benutzer
    Registriert seit
    23.04.2001
    Ort
    Thüringen/BaWü
    Beiträge
    98

    Post

    du hast aber schon $path auf den pfad gesetzt, also z.b.
    $path=`pwd`;

  6. #6
    Registrierter Benutzer
    Registriert seit
    23.04.2001
    Ort
    Thüringen/BaWü
    Beiträge
    98

    Post

    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

  7. #7
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242

    Cool

    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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •