![]() |
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 |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| ändra filändelsen från roten och underkataloger | Astrid | Shell-programmering och Skript | 10 | 02-17-2008 07:18 |
| förlängning problem vänligen hjälp | sharmasdeepti | UNIX for Dummies Frågor & Svar | 1 | 10-24-2007 07:29 |
| utan förlängning | adurga | UNIX for Dummies Frågor & Svar | 3 | 07-02-2007 12:34 |
| Ändra förlängning | mohan705 | Shell-programmering och Skript | 4 | 06-30-2007 01:06 |
| Hur ändrar jag förlängning | kswaraj | Shell-programmering och Skript | 2 | 06-28-2004 08:07 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Hur kan du skriva ett skalskript som förändringen utvidgningen av alla filer?
t.ex. chext rtf doc där. rtf är originalet förlängning och. doc är den nya förlängning Är det något att göra med basename? behöver jag en till loop? Please help! Unix SuperNewbie |
|
||||
|
kommer du att inse att göra en sökning på dessa forum skulle ge dig fler idéer ... för exampe Jag sökte på "byta namn på filer" och jag fick den här länken ...
Enkelt sätt att massa byta namn på filer? Jag har bara ändrat en liten bit kod från länken ovan ... Citat:
Vishnu. |
|
||||
|
Jag kan få skriptet att arbeta på följande sätt:
#! / bin / sh för namn i "ls *. rtf" göra name1 \u003d `echo $ name | cut-f 1-d. " mv $ name1.rtf $ name1.doc gjord fungerar bra, men hur gör jag det att fungera så här: chext 1 2 där 1 är den ursprungliga förlängning och 2 är viljan ny förlängning? |
|
||||
|
ersätta dem "rtf" och "doc" med $ 1 och $ 2 i skriptet ...
Jag bör tillägga att ovanstående sätt med "cut" kommer inte att fungera om du har flera punkter i filnamnet ... Kod:
#!/bin/sh for name in `ls *.$1` do name1=`echo $name | sed -e "s/^\(.*\)\.$1$/\1\.$2/g"` mv $name $name1 done Kod:
#!/bin/sh ls *.$1 | sed -e "s/^\(.*\)\.$1$/\1\.$1 \1\.$2/g" | xargs -n 2 mv -f Vishnu. |