![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna! |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| gör katt rekursivt på alla filer i en katalog | tulip | Shell-programmering och Skript | 11 | 05-21-2009 06:24 |
| rekursivt döpa om filer | catgovind | UNIX for Dummies Frågor & Svar | 2 | 08-20-2008 03:50 |
| byta namn på filen i parti | reldb | UNIX för avancerade & Expertanvändare | 7 | 01-14-2008 06:43 |
| byta namn på partiet | kathy18 | Shell-programmering och Skript | 3 | 03-09-2005 09:47 |
| Lista filer rekursivt | roberthawke | UNIX for Dummies Frågor & Svar | 9 | 06-24-2002 07:19 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Jag skulle vilja ersätta flera understryker med bindestreck men jag har 26.000 filer att byta namn. De är alla i en filstruktur och flera underleverantörer kataloger.
Det skulle vara mycket enklare om jag hade ett skript för att göra det. Här är några prover på filnamnen: Exempel 1 books/horrors/small/books_horrors_small_0000000386.jpg Byt namn till books/horrors/small/books-horrors-small-0000000386.jpg Exempel 2 books/comedy/small/books_comedy_small_0000001687.jpg Byt namn till books/comedy/small/books-comedy-small-0000001687.jpg Det finns 26.000 filer som ser similer till det och är alla i olika kataloger. Det enda jag behöver göra är att ersätta alla understreck _ med bindestreck -- |
|
||||
|
Kod:
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
}'
Senast redigerad av ghostdog74; 06-26-2009 at 03:17.. |
|
||||
|
Batchfilen Rename rekursivt - Brilliant, nu Hur man på Directory Namn?
ghostdog74 lösning nedan BRILLANT och fungerat väl.
Uppföljning fråga: Hur man gör exakt samma sak, men endast på mappar i samma fil mappträd (rekursivt)? DougABC123 Citat:
|
![]() |
| Komihåglista |
| Taggar |
| parti döpa ersätta _ -- |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|