![]() |
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| UNIX for Dummies Questions & Answers Wenn Sie nicht sicher sind, wo Sie eine UNIX-oder Linux-Frage, post it here. Alle UNIX-und Linux-Anfänger willkommen! |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Dabei Katze rekursiv auf alle Dateien in einem Verzeichnis | tulip | Shell Programmierung und Scripting | 11 | 05-21-2009 06:24 PM |
| rekursiv das Umbenennen von Dateien | catgovind | UNIX for Dummies Questions & Answers | 2 | 08-20-2008 03:50 AM |
| Benennen Sie die Datei im Batch | reldb | UNIX für Fortgeschrittene und Experten | 7 | 01-14-2008 06:43 PM |
| umbenennen im Batch | kathy18 | Shell Programmierung und Scripting | 3 | 03-09-2005 09:47 AM |
| Liste Dateien rekursiv | roberthawke | UNIX for Dummies Questions & Answers | 9 | 06-24-2002 07:19 PM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
Ich möchte die Ersetzung multipler unterstreicht mit Bindestrich, aber ich habe 26.000 Dateien umbenennen. Sie sind alle in einer Datei und mehrere Unterverzeichnisse.
Es wäre viel einfacher, wenn ich ein Skript zu tun. Hier sind einige Beispiele für die Datei-Namen: Beispiel 1 books/horrors/small/books_horrors_small_0000000386.jpg Benennen Sie die books/horrors/small/books-horrors-small-0000000386.jpg Beispiel 2 books/comedy/small/books_comedy_small_0000001687.jpg Benennen Sie die books/comedy/small/books-comedy-small-0000001687.jpg Es gibt 26000 Dateien, die sich similer zu, und sind alle in unterschiedlichen Verzeichnissen. Das einzige, was ich tun müssen, ist zu ersetzen alle Unterstriche _ mit Bindestrich -- |
|
||||
|
Code:
awk 'BEGIN{
q="\047"
path="/path/to/search"
cmd="find "path" -type f -name \"*_*.jpg\""
while(( cmd|getline f )>0){
m=split(f,file,"/")
gsub(/_/,"-",file[m])
newfilename = join(file,1,m,"/")
mv = "mv "q f q" "q newfilename q
print mv
#system(mv) #uncomment to use
close(mv)
}
close(cmd)
}
function join(array, start, end, sep, result, i)
{
if (sep == "") sep = " "
else if (sep == SUBSEP) sep = ""
result = array[start]
for (i = start + 1; i <= end; i++)
result = result sep array[i]
return result
}'
Zuletzt bearbeitet von ghostdog74; am 06-26-2009 03:17 AM.. |
|
||||
|
Batch File Rename rekursiv - Brilliant, jetzt, wie die zu den Verzeichnisnamen?
ghostdog74 Lösung unten ist brillant und hat gut funktioniert.
Follow-up-Frage: Wie kann man die genau die gleiche Sache, sondern nur auf die Datei, Ordner-Datei in diesem Ordner Baum (rekursiv)? DougABC123 Zitat:
|
![]() |
| Lesezeichen |
| Tags |
| Stapel-Umbenennung ersetzt _ -- |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|