Portál AbcLinuxu, 10. května 2025 13:43

Dotaz: První znak (ne písmeno) převede velký, zbytek převede na malý

2.4.2009 22:18 pukan
První znak (ne písmeno) převede velký, zbytek převede na malý
Přečteno: 125×
Odpovědět | Admin
Potřebuji vypsat z aktuálního adresáře všechny soubory s koncovkou ".mid", tuto koncovku uřezat a soubor přejmenovat takto: První znak (ne písmeno) převede na velký, zbytek převede na malý, např.:

jsBach.mid --> Jsbach _01-JSBach.MID --> _1-jsbach

Tyto názvy pak použiji dál. Použil jsem k tomu tyto příkazy:

for i in *.mid; do k=`echo ${i:0:1} | tr '[:lower:]' '[:upper:]'`; l=`echo ${i:1:${#i}-5} | tr '[:upper:]' '[:lower:]'`; echo $k$l; done

Funguje to a ptám se, zdali je toto možné provést jediným regulárním výrazem, např. v utilitě sed:

for i in *.mid; do k=`sed' regulární výraz(y) '`; echo $k; done
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.4.2009 22:33 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: První znak (ne písmeno) převede velký, zbytek převede na malý
Odpovědět | | Sbalit | Link | Blokovat | Admin
zdali je toto možné provést jediným regulárním výrazem, např. v utilitě sed
V sedu to dopadne asi dost nešikovně, ale v AWKu by to mělo jít docela snadno funkcemi toupper, tolower a substr.
I am always ready to learn although I do not always like to be taught. (W. Churchill)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.