The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
google unix.com



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
Byt namn på ett filnamn Aswarth Shell-programmering och Skript 0 06-04-2008 03:18
byta namn på filen till file.ext.datetime tripsat Shell-programmering och Skript 2 09-20-2007 05:12
Inte kunna byta namn på filen Manish KU Shell-programmering och Skript 2 06-27-2007 05:07
Arkiv byta namn redlotus72 UNIX for Dummies Frågor & Svar 1 03-09-2006 11:52
Byt namn på en del av flera filer sajjad02 Shell-programmering och Skript 4 02-22-2005 01:30

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 06-28-2005
steve7 steve7 is offline
Registered User
  
 

Join Date: juni 2005
Inlägg: 1
Question Hjälp med flera fil Byt namn - förändringen gäller en del av filnamnet

Hallå där,

Jag hoppas någon kan hjälpa mig med detta problem:

Jag har en katalog (/ var / www / fil / imgprofil) som innehåller ca 10000 JPG-filer. De har en namnregel sålunda:

prefix-date-key-suffix.jpg

De har alla prefixet p-20050608 -
sedan AAAA en 4 bokstavskod
ändelsen är antingen -g / -v / -m eller ingen suffix
filtillägget alltid . jpg

prov:

p-20050608-AFWC-g.jpg
p-20050608-AFWC-m.JPG
p-20050608-AFWC-v.jpg
p-20050608-AFWC.jpg
p-20050608-AFWD-g.jpg
p-20050608-AFWD-m.JPG
p-20050608-AFWD-v.jpg
p-20050608-AFWD.jpg


Mitt problem är att vissa av filerna har 1 eller flera små bokstäver på 4 bokstäver, så de är så här:

p-20050608-Ajyd-g.jpg
p-20050608-Ajyd-m.JPG
p-20050608-Ajyd-v.jpg
p-20050608-Ajyd.jpg
p-20050608-Ajyw-g.jpg
p-20050608-Ajyw-m.JPG
p-20050608-Ajyw-v.jpg
p-20050608-Ajyw.jpg


Nu, Unix är det skiftlägeskänsliga ängel som det är Jag behöver omvandla dessa små "nycklar" filnamn i versaler, så att urvalet skulle bli:

p-20050608-AJYD-g.jpg
p-20050608-AJYD-m.JPG
p-20050608-AJYD-v.jpg
p-20050608-AJYD.jpg
p-20050608-AJYW-g.jpg
p-20050608-AJYW-m.JPG
p-20050608-AJYW-v.jpg
p-20050608-AJYW.jpg


Medan naturligtvis hålla små prefix (p-) och suffix (-g /-m /-v) och gemener filnamnstillägg (. Jpg)

Jag hoppas att detta är klart och att någon kan hjälpa till med detta,

Tack,

Steve
  #2 (permalänk)  
Old 06-28-2005
rahul123_libra rahul123_libra is offline
Registered User
  
 

Join Date: maj 2005
Inlägg: 46
Använd awk

för old_name in `ls-l path_to_dir / * jpg"
göra
new_name \u003d `awk-F" - " 'BEGIN (OFS \u003d"-"} ($ 3 \u003d toupper ($ 3), print $ 0)' $ old_name`
mv $ old_name $ new_name
gjord

Senast redigerad av rahul123_libra; 06-28-2005 at 10:37..
  #3 (permalänk)  
Old 06-29-2005
vibhor_agarwali vibhor_agarwali is offline
Registered User
  
 

Join Date: Jan 2005
Inlägg: 259
Något hjälp sed:

för filnamn i *. jpg;
göra
echo $ filename | sed -e 's / Aiyd / AIYD / g'
gjord
  #4 (permalänk)  
Old 06-29-2005
rahul123_libra rahul123_libra is offline
Registered User
  
 

Join Date: maj 2005
Inlägg: 46
Detta är 1 fall

Citat:
Ursprungligen postat av vibhor_agarwali
Något hjälp sed:

för filnamn i *. jpg;
göra
echo $ filename | sed -e 's / Aiyd / AIYD / g'
gjord

Detta är för 1 fall (aiyd) och inte för alla alternativ

Isnt it?
  #5 (permalänk)  
Old 06-29-2005
vino's Avatar
vino vino is offline Forum Staff  
Supporter (in vino veritas)
  
 

Join Date: februari 2005
Ort: Bangalore, Indien
Inlägg: 2.798
Bortsett från detta, hur kommer du ändra namnet på filen med en sed. Det kräver en mv mycket specifikt.

-vino
  #6 (permalänk)  
Old 06-30-2005
vibhor_agarwali vibhor_agarwali is offline
Registered User
  
 

Join Date: Jan 2005
Inlägg: 259
Perfekt Agree,

Men jag kunde åstadkomma bara så mycket med min kunskap om sed.
Kan någon ge en generell sed.

mv tas för givet.

för filnamn i *. jpg;
göra
newname \u003d `echo $ filename | sed -e 's / Aiyd / AIYD / g' `
mv $ filename newname
gjord
  #7 (permalänk)  
Old 06-30-2005
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
Moderator
  
 

Join Date: oktober 2003
Ort: -31.96,115.84
Inlägg: 1.409
Citat:
Ursprungligen postat av rahul123_libra
för old_name in `ls-l path_to_dir / * jpg"
göra
new_name \u003d `awk-F" - " 'BEGIN (OFS \u003d"-"} ($ 3 \u003d toupper ($ 3), print $ 0)' $ old_name`
mv $ old_name $ new_name
gjord
Detta har vissa fel i den awk linje. För det första är det ett försök att bearbeta JPG-fil själv snarare än filnamnet.
Också, med $ 3 ibland matcher mer än de 4 bokstavskod (där det inte finns någon suffix).

Kanske prova:
Kod:
for i in *.jpg
do
  eval $(echo $i|awk '{printf "mv %s %s\n", $0,\
    substr($0,1,11) toupper(substr($0,12,4)) substr($0,16)}')
done

Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 07:59.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0