Dateiendung ändern

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von hawkril, 05.07.2006.

  1. #1 hawkril, 05.07.2006
    Zuletzt bearbeitet: 06.05.2010
    hawkril

    hawkril Grünschnabel

    Dabei seit:
    05.07.2006
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo

    Ich hab da ein Problem :hilfe: und zwar:

    Ich brauche ein shell skript das dateien mit dem namen $name.ISO in $name.txt umbenennt. Ich frag hier mal da ich mich mit skripten noch kein bisschen beschäftigt hab :rolleyes: .

    Achja.. noch kurz wofür ich das skript brauche: Mein Vater ist blind und bezieht daher die ct als ascii files. Allerdings haben die seltsamerweise die endung .ISO. Diese möchte er weghaben aber am besten im ganzen verzeichnis mit nur einem befehl..

    MfG und danke im Voraus

    hawkril
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Willkommen im ub :)

    Code:
    for i in *.ISO; do mv $i $(basename $i .ISO).txt; done
    
    Gruss, Xanti
     
  4. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Oder nur mit bash:
    Code:
    for i in *.ISO; do mv $i ${i%ISO}txt ; done
    
     
  5. #4 Michi0209, 10.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    Hallo auch ich wollte diese kleine script nutzen um meine CodeWarrior Projekt Dateien umzubenennen...
    Leider funktioniert das bei mir nicht so richtig:

    CodeWarrior legt alle Projektdateien mit der Endung *.µ an! Leider kann ich nach dem "µ" nicht suchen, weil shell das nicht findet?!
    wenn ich jedoch einfach nur:

    for i in *.µ; do mv $i ${i%µ}proj ; done

    aufrufen dann bekomme ich folgende meldung:

    mv: rename *.? to *.proj: Invalid argument

    Wie kann ich das Problem umgehen!??

    Danke für eure antwort!
     
  6. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Vermutlich ist das folgende nicht die eleganteste Loesung:
    mit einem C-Programm
    Code:
    #include <stdio.h>
    
    int main(void)
    {
        int i;
        for(i = 128; i < 256; ++i) {
          printf("%d: |%c|\n", i, (char)i);
        }
        return 0;
    }
    
    habe ich rausgefunden, dass das 'mu' dem integer 181, oder 0xB5 entspricht.
    Dann kannst Du diesen Wert folgendermassen in Bash verwenden:
    Code:
    SUFFIX=`echo -e "\xB5"`
    for i in "*.$suffix"; do rm $i ; done
    
    Vermutlich laesst sich die bash ohne die Einfuehrung der 'SUFFIX' Variable via 'echo' dazu ueberreden, Hexadezimalwerte zu akzeptieren, habe ich aber auf die Schnelle nicht hinbekommen.
     
  7. #6 Wolfgang, 10.07.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Eventuell reicht es ja schon, wenn du deinem Befehl die richtige LC_ALL mitgibst.
    Was sagt denn locale bei dir?
    Wie du siehst geht sowas durchaus.

    Gruß Wolfgang
     
  8. #7 Michi0209, 10.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    das erhalte ich als resultat:

    LANG=
    LC_COLLATE="C"
    LC_CTYPE="C"
    LC_MESSAGES="C"
    LC_MONETARY="C"
    LC_NUMERIC="C"
    LC_TIME="C"
    LC_ALL="C"

    wo kann ich diese typen ändern??
     
  9. #8 Wolfgang, 10.07.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Du brauchst die entsprechende Variable deinem Befehl nur mit auf den Weg zu geben.
    z.B.
    Code:
    $ date "+%A"
    Montag
    wolle@Nietzsche:~/temp
    $ LC_ALL=C date "+%A"
    Monday
    
    Welche Dist. nutz du denn?
    locale -a zeigt dir die möglichen Werte.
    für debian gibt es hier eine gute Anleitung.
    Du kannst die natürlich auch exportieren, oder in deiner .bashrc festlegen.
    Für root empfiehlt es sich jedoch immer LC_ALL auf POSIX zu setzen.

    Gruß Wolfgang
     
  10. #9 Michi0209, 11.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    Hallo, habe mir mal den Link durchgelesen, leider ohne wirklichen erfolg...

    Wolfgang, du schreibst etwas vom exportieren?? Was soll ich den exportieren...

    Gibt es irgendwo eine möglichkeit die locale "von Hand" ein zu stellen...?

    Das hier ist das reusltat von locale -a:

    Code:
    af_ZA
    af_ZA.ISO8859-1
    af_ZA.ISO8859-15
    af_ZA.UTF-8
    am_ET
    am_ET.UTF-8
    be_BY
    be_BY.CP1131
    be_BY.CP1251
    be_BY.ISO8859-5
    be_BY.UTF-8
    bg_BG
    bg_BG.CP1251
    bg_BG.UTF-8
    ca_ES
    ca_ES.ISO8859-1
    ca_ES.ISO8859-15
    ca_ES.UTF-8
    cs_CZ
    cs_CZ.ISO8859-2
    cs_CZ.UTF-8
    da_DK
    da_DK.ISO8859-1
    da_DK.ISO8859-15
    da_DK.UTF-8
    de_AT
    de_AT.ISO8859-1
    de_AT.ISO8859-15
    de_AT.UTF-8
    de_CH
    de_CH.ISO8859-1
    de_CH.ISO8859-15
    de_CH.UTF-8
    de_DE
    de_DE.ISO8859-1
    de_DE.ISO8859-15
    de_DE.UTF-8
    el_GR
    el_GR.ISO8859-7
    el_GR.UTF-8
    en_AU
    en_AU.ISO8859-1
    en_AU.ISO8859-15
    en_AU.US-ASCII
    en_AU.UTF-8
    en_CA
    en_CA.ISO8859-1
    en_CA.ISO8859-15
    en_CA.US-ASCII
    en_CA.UTF-8
    en_GB
    en_GB.ISO8859-1
    en_GB.ISO8859-15
    en_GB.US-ASCII
    en_GB.UTF-8
    en_IE
    en_IE.UTF-8
    en_NZ
    en_NZ.ISO8859-1
    en_NZ.ISO8859-15
    en_NZ.US-ASCII
    en_NZ.UTF-8
    en_US
    en_US.ISO8859-1
    en_US.ISO8859-15
    en_US.US-ASCII
    en_US.UTF-8
    es_ES
    es_ES.ISO8859-1
    es_ES.ISO8859-15
    es_ES.UTF-8
    et_EE
    et_EE.ISO8859-15
    et_EE.UTF-8
    eu_ES
    eu_ES.ISO8859-1
    eu_ES.ISO8859-15
    eu_ES.UTF-8
    fi_FI
    fi_FI.ISO8859-1
    fi_FI.ISO8859-15
    fi_FI.UTF-8
    fr_BE
    fr_BE.ISO8859-1
    fr_BE.ISO8859-15
    fr_BE.UTF-8
    fr_CA
    fr_CA.ISO8859-1
    fr_CA.ISO8859-15
    fr_CA.UTF-8
    fr_CH
    fr_CH.ISO8859-1
    fr_CH.ISO8859-15
    fr_CH.UTF-8
    fr_FR
    fr_FR.ISO8859-1
    fr_FR.ISO8859-15
    fr_FR.UTF-8
    he_IL
    he_IL.UTF-8
    hi_IN.ISCII-DEV
    hr_HR
    hr_HR.ISO8859-2
    hr_HR.UTF-8
    hu_HU
    hu_HU.ISO8859-2
    hu_HU.UTF-8
    hy_AM
    hy_AM.ARMSCII-8
    hy_AM.UTF-8
    is_IS
    is_IS.ISO8859-1
    is_IS.ISO8859-15
    is_IS.UTF-8
    it_CH
    it_CH.ISO8859-1
    it_CH.ISO8859-15
    it_CH.UTF-8
    it_IT
    it_IT.ISO8859-1
    it_IT.ISO8859-15
    it_IT.UTF-8
    ja_JP
    ja_JP.eucJP
    ja_JP.SJIS
    ja_JP.UTF-8
    kk_KZ
    kk_KZ.PT154
    kk_KZ.UTF-8
    ko_KR
    ko_KR.CP949
    ko_KR.eucKR
    ko_KR.UTF-8
    lt_LT
    lt_LT.ISO8859-13
    lt_LT.ISO8859-4
    lt_LT.UTF-8
    nl_BE
    nl_BE.ISO8859-1
    nl_BE.ISO8859-15
    nl_BE.UTF-8
    nl_NL
    nl_NL.ISO8859-1
    nl_NL.ISO8859-15
    nl_NL.UTF-8
    no_NO
    no_NO.ISO8859-1
    no_NO.ISO8859-15
    no_NO.UTF-8
    pl_PL
    pl_PL.ISO8859-2
    pl_PL.UTF-8
    pt_BR
    pt_BR.ISO8859-1
    pt_BR.UTF-8
    pt_PT
    pt_PT.ISO8859-1
    pt_PT.ISO8859-15
    pt_PT.UTF-8
    ro_RO
    ro_RO.ISO8859-2
    ro_RO.UTF-8
    ru_RU
    ru_RU.CP1251
    ru_RU.CP866
    ru_RU.ISO8859-5
    ru_RU.KOI8-R
    ru_RU.UTF-8
    sk_SK
    sk_SK.ISO8859-2
    sk_SK.UTF-8
    sl_SI
    sl_SI.ISO8859-2
    sl_SI.UTF-8
    sr_YU
    sr_YU.ISO8859-2
    sr_YU.ISO8859-5
    sr_YU.UTF-8
    sv_SE
    sv_SE.ISO8859-1
    sv_SE.ISO8859-15
    sv_SE.UTF-8
    tr_TR
    tr_TR.ISO8859-9
    tr_TR.UTF-8
    uk_UA
    uk_UA.ISO8859-5
    uk_UA.KOI8-U
    uk_UA.UTF-8
    zh_CN
    zh_CN.eucCN
    zh_CN.GB18030
    zh_CN.GB2312
    zh_CN.GBK
    zh_CN.UTF-8
    zh_HK
    zh_HK.Big5HKSCS
    zh_HK.UTF-8
    zh_TW
    zh_TW.Big5
    zh_TW.UTF-8
    C
    POSIX
    Hoffentlich hilft mir jemand weiter. :brav:
     
  11. #10 supersucker, 11.07.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Wo man das einstellt hängt von deiner Distro ab.

    Ich hab hier grade Gentoo und da wird das in /etc/env.d/02locale definiert.

    Das ist bei dir garantiert wo anders.

    Code:
    grep -ir lc_all /etc
    sagt dir wo.
     
  12. #11 Michi0209, 11.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    das locale wird da aber nicht mit aufgelistet, lediglich:

    grep: /etc/cups/certs: Permission denied
    grep: /etc/cups/classes.conf: Permission denied
    grep: /etc/cups/printers.conf: Permission denied
    grep: /etc/cups/printers.conf.O: Permission denied
    grep: /etc/kcpassword: Permission denied
    grep: /etc/master.passwd: Permission denied
    grep: /etc/openldap/slapd.conf.default: Permission denied
    grep: /etc/racoon/psk.txt: Permission denied
    grep: /etc/racoon/remote/anonymous.conf: Permission denied
    grep: /etc/sudoers: Permission denied

    woran liegt das?!??!
     
  13. #12 supersucker, 11.07.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Das grep musst du natürlich als root ausführen, wie fast alles was du in /etc machen willst.
     
  14. #13 Michi0209, 11.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    äh, und wie mache ich das??:hilfe2:
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 supersucker, 11.07.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    in der Konsole:

    eingeben, dann dein root-Passwort, dann obige grep-Anweisung.

    Wenn du Ubuntu o.Ä. verwendest, dann

    Code:
    sudo grep -ir lc_all /etc
    und dein USER-Password eingeben.

    OH, und dringend mal Linux-Grundlagen aneignen.
     
  17. #15 Schlaubi_fi.de, 11.07.2006
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Natürlich musst du den root-Benutzer unter MacOS X auch aktiviert haben, das geht unter

    Programme / Dienstprogramme / NetInfo Manager / Sicherheit / Identifizieren... / root-Benutzer aktivieren
     
Thema:

Dateiendung ändern

Die Seite wird geladen...

Dateiendung ändern - Ähnliche Themen

  1. Rekursives Ändern einer bestimmten Dateiendung

    Rekursives Ändern einer bestimmten Dateiendung: Hallo Leute, ich habe meine Musiksammelung komplett im Ogg-Vorbis-Format gespeichert. Seit neustem neigen aber alle möglichen Programme dazu,...
  2. Dateiendungen verändern

    Dateiendungen verändern: Hi, ich habe noch nicht viel mit Shell-Script gemacht und versuche nun Ordner umzubennen die zB ordner1_xlst heißen, jetzt soll er aber die...
  3. Dateiendung verändern

    Dateiendung verändern: Hi ! Ich habe Datei foo.0.9.7e.tar.gz . Ich möchte jetzt nur den vorderen Teil des Dateinamens hearausbekommen (ohne das .tar.gz; sprich...
  4. grip & Dateiendungen per Konsole ändern???

    grip & Dateiendungen per Konsole ändern???: Ich habe mir heute mit grip eine cd gerippt und nach ogg kodiert. Aus irgendeinem für mich unerfindlichen Grund hat grip aber alle dateien als mp3...
  5. gentoo-filemanager neue Dateiendung mit bestimmter SW öffnen lassen

    gentoo-filemanager neue Dateiendung mit bestimmter SW öffnen lassen: Hallo Kennt sich hier jemand mit dem filemanger gentoo aus ? Ich hab ejetzt geschlagene 1Std versucht, ihn zu überreden eine *.odt zu...