Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[solved] Dateinamen eines ganzen Verzeichnisses umbenennen

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Schakal
Newbie
Newbie
Beiträge: 5
Registriert: 26. Feb 2004, 22:52
Wohnort: Herrenberg
Kontaktdaten:

[solved] Dateinamen eines ganzen Verzeichnisses umbenennen

Beitrag von Schakal »

Hi,

folgendes Problem, ich habe einige Dateien, bei denen man den Dateinamen ändern muss... Da es von Hand ziemlich langwierig ist (1000 Stück) habe ich mir überlegt, dies ein kleines Script für mich machen zu lassen.

So siehts aus:

Code: Alles auswählen

-rw-r--r--    1 dxxx    users           0 2004-03-11 11:10 002 m e ine - d a t ei.dat
-rw-r--r--    1 dxxx    users           0 2004-03-11 11:10 007 meine - datei.dat
-rw-r--r--    1 dxxx    users           0 2004-03-11 11:09 01 me ine - d a tei.dat
-rw-r--r--    1 dxxx    users           0 2004-03-11 11:10 02 meine - datei.dat
Die Dateinamen sollen quasi verkürzt werden...

Jetzt hab ichs schonmal geschafft, die Dateinamen zu selektieren...

Code: Alles auswählen

dxxx@lnx:~/dat> ll | cut -d ":" -f 2 | cut -d " " -f 3-100

m e ine - d a t ei.dat
meine - datei.dat
me ine - d a tei.dat
meine - datei.dat
Wenn ich dieses jetzt Zeilenweise anwenden könnte und den selektierten Dateinamen in eine variable schreibe, könnte ich mit einem "mv" dann die Dateien in ein anders Verzeichnis zb "moven" :)

ungefähr so:

Code: Alles auswählen

var=1.Zeile von ll | cut -d ":" -f 2 | cut -d " " -f 3-100
mv /dat/002 m e ine - d a t ei.dat /umbenannt/$var
Das noch inne Schleife packn und fertig wärs... Leider bin ich jetzt kein guter Scriptcoder... Könnte mir jemand sagen wies vllt. besser geht oder mir bei meinem Lösungsansatz helfen??

Fetten Dank im voraus
Schakl
Es gibt keine dummen Fragen, nur dumme Antworten! :)
poiin2000
Member
Member
Beiträge: 55
Registriert: 29. Jan 2004, 17:04
Wohnort: Pforzheim
Kontaktdaten:

Beitrag von poiin2000 »

Gib bitte Testnamen wie es aussieht und wie es später aussehen soll raus.

Sonst kann dir niemand helfen wenn das Ziel nicht klar definiert wird.

Ich habe dieses Problem aber schonmal gelöst ...

eventuell hilft es ja
Original geschrieben von poiin2000

Code: Alles auswählen

find /home/poiin2000/Desktop/test/ -type f | awk '/(htm$|html$)/{print "cat "_$1_" | sed \"s/wegweg//g\" > "_$1 }' | $SHELL
Dieser Einzeiler entfernt diverse Textstellen in html-dateien
Anzupassen ist der pfad und das suchmuster "wegweg"

mfg p2k [/b]
Original geschrieben von poiin2000

Code: Alles auswählen

find /daten/temp -type f | awk '/1.part.met.bak$/{print "mv \""_$0_"\" "_"\""_$0"\""}' | sed s/1.part.met.bak\"$/1.part.met\"/g | $SHELL
Umbennen von overnedaten bei absturz des client´s
Ziel : *.1.part.met.bak in 1.part.met umbennen.
/daten/temp/ ist auf das jeweilige Verzeichnis anzupassen.
Der rest sollte so stehen bleiben.

p2k [/b]
Original geschrieben von poiin2000

Code: Alles auswählen

ls *jpg* -1 | awk '/.jpg./{print "mv \""_$0_"\" "_"\""_$0".jpg\""}' | sed s/jpg//2 |$SHELL
Wandelt mehrere Bilder von

Code: Alles auswählen

3.jpg.56
2.jpg.126
1.jpg.316
in

Code: Alles auswählen

3.56.jpg
2.126.jpg
1.316.jpg
um

mfg p2k [/b]
Original geschrieben von poiin2000

Code: Alles auswählen

sed -e 's/A/\\46#65;/g' -e 's/B/\\46#66;/g' -e 's/C/\\46#67;/g' -e 's/D/\\46#68;/g' -e 's/E/\\46#69;/g' -e 's/F/\\46#70;/g' -e 's/G/\\46#71;/g' -e 's/H/\\46#72;/g' -e 's/I/\\46#73;/g' -e 's/J/\\46#74;/g' -e 's/K/\\46#75;/g' -e 's/L/\\46#76;/g' -e 's/M/\\46#77;/g' -e 's/N/\\46#78;/g' -e 's/O/\\46#79;/g' -e 's/P/\\46#80;/g' -e 's/Q/\\46#81;/g' -e 's/R/\\46#82;/g' -e 's/S/\\46#83;/g' -e 's/T/\\46#84;/g' -e 's/U/\\46#85;/g' -e 's/V/\\46#86;/g' -e 's/W/\\46#87;/g' -e 's/X/\\46#88;/g' -e 's/Y/\\46#89;/g' -e 's/Z/\\46#90;/g' -e 's/a/\\46#97;/g' -e 's/b/\\46#98;/g' -e 's/c/\\46#99;/g' -e 's/d/\\46#100;/g' -e 's/e/\\46#101;/g' -e 's/f/\\46#102;/g' -e 's/g/\\46#103;/g' -e 's/h/\\46#104;/g' -e 's/i/\\46#105;/g' -e 's/j/\\46#106;/g' -e 's/k/\\46#107;/g' -e 's/l/\\46#108;/g' -e 's/m/\\46#109;/g' -e 's/n/\\46#110;/g' -e 's/o/\\46#111;/g' -e 's/p/\\46#112;/g' -e 's/q/\\46#113;/g' -e 's/r/\\46#114;/g' -e 's/s/\\46#115;/g' -e 's/t/\\46#116;/g' -e 's/u/\\46#117;/g' -e 's/v/\\46#118;/g' -e 's/w/\\46#119;/g' -e 's/x/\\46#120;/g' -e 's/y/\\46#121;/g' -e 's/z/\\46#122;/g' -e 's/@/\\46#64;/g' -e 's/A//g' -e 's/B//g' -e 's/C//g' -e 's/D//g' -e 's/E//g' -e 's/F//g' -e 's/g//g' -e 's/H//g' -e 's/I//g' -e 's/J//g' -e 's/K//g' -e 's/L//g' -e 's/M//g' -e 's/N//g' -e 's/O//g' -e 's/P//g' -e 's/Q//g' -e 's/R//g' -e 's/s//g' -e 's/T//g' -e 's/U//g' -e 's/V//g' -e 's/W//g' -e 's/X//g' -e 's/Y//g' -e 's/Z//g' -e 's/a//g' -e 's/b//g' -e 's/c//g' -e 's/d//g' -e 's/e//g' -e 's/f//g' -e 's/g//g' -e 's/h//g' -e 's/i//g' -e 's/j//g' -e 's/k//g' -e 's/l//g' -e 's/m//g' -e 's/n//g' -e 's/o//g' -e 's/p//g' -e 's/q//g' -e 's/r//g' -e 's/s//g' -e 's/t//g' -e 's/u//g' -e 's/v//g' -e 's/w//g' -e 's/x//g' -e 's/y//g' -e 's/z//g' -e 's/@//g' | awk '{print "echo -e \"" $0"\""}' | $SHELL
Ein kleiner Einzeiler der sicher auch mittels gsub von awk haette geloesst werden koennen.
Wandelt Gross/Kleinbuchstaben sowie einige Sonderzeichen in ASCII Code um.

Eine moegliche anwendung waere das Verschluesseln von Emailadressen.


mfg poiin2000 [/b]
mfg p2k
Gast

Hmmm

Beitrag von Gast »

Hi,

Danke erstma für deine Antwort... Leider kann ich noch nicht wo wirklich was damit anfangen...
So wie in meinem ersten Codebeispiel sehen die Dateien im Moment aus und so wie der Output im 2. Codebeispiel sollen sie mal aussehen!

MfG
Schakal
Benutzeravatar
kroe
Member
Member
Beiträge: 87
Registriert: 11. Sep 2003, 19:38

Re: ?? Dateinamen eines ganzen Verzeichnisses umbenennen

Beitrag von kroe »

Schakal hat geschrieben: folgendes Problem, ich habe einige Dateien, bei denen man den Dateinamen ändern muss... Da es von Hand ziemlich langwierig ist (1000 Stück) habe ich mir überlegt, dies ein kleines Script für mich machen zu lassen.
Dafür gibt es schon fertige Programme:
an der Konsole: mmv
als gui: krename

beide bei SuSe dabei

Gruß
kroe
Dokumentation für LTSP-SuSE-icewm, insbesondere für den Einsatz in Schulen:
--> http://www.linux-schulen.de
Antworten