![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen! |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| gør katten rekursivt på alle filer i en mappe | Tulip | Shell Programmering og Scripting | 11 | 05-21-2009 06:24 PM |
| rekursivt omdøbe filer | catgovind | UNIX for dummyer Spørgsmål & svar | 2 | 08-20-2008 03:50 AM |
| omdøbe filen i batch | reldb | UNIX for Advanced & Ekspertsøgning Brugere | 7 | 01-14-2008 06:43 PM |
| omdøbe i batch | kathy18 | Shell Programmering og Scripting | 3 | 03-09-2005 09:47 AM |
| Liste filer rekursivt | roberthawke | UNIX for dummyer Spørgsmål & svar | 9 | 06-24-2002 07:19 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Jeg vil gerne erstatte flere understregninger med bindestreger men jeg har 26.000 filer omdøbe. De er alle i en filstruktur og flere sub-mapper.
Det ville være meget enklere, hvis jeg havde et script til at gøre det. Her er nogle prøver af filnavne: Eksempel 1 books/horrors/small/books_horrors_small_0000000386.jpg Omdøb til books/horrors/small/books-horrors-small-0000000386.jpg Eksempel 2 books/comedy/small/books_comedy_small_0000001687.jpg Omdøb til books/comedy/small/books-comedy-small-0000001687.jpg Der er 26.000 filer, der ser similer til dette og er alle i forskellige mapper. Det eneste, jeg skal gøre, er at erstatte alle de understregningstegn _ med bindestreger -- |
|
||||
|
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
}'
Sidst redigeret af ghostdog74; 06-26-2009 på 03:17 AM.. |
|
||||
|
Batchfilen Omdøb rekursivt - Brilliant, Nu Sådan om mappenavnene?
ghostdog74's løsning nedenfor er BRILLANT og fungeret godt.
Opfølgning spørgsmål: Sådan gør nøjagtigt den samme ting, men kun på den fil mapper i den samme fil mappetræ (rekursivt)? DougABC123 Citat:
|
![]() |
| Bogmærker |
| Tags |
| batch omdøbe erstatte _ -- |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|