[ B o j a n @ 09.05.2003. 18:48 ] @
dakle, kako na najelegantniji nacin konvertovati sva uppercase slova u lowercase ?
operise se sa imenima file-ova, sto verovatno znaci neki od standardnih alata ( sed, awk ... )
[ alex @ 09.05.2003. 19:39 ] @
$ echo "VELIKA SLOVA SU MALA SLOVA" | tr 'A-Z' 'a-z'

[ tOwk @ 09.05.2003. 19:43 ] @
echo PROBA | tr A-Z a-z
echo PROBA | awk '{ print tolower($0) }'
echo PROBA | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'
TXT='PROBA' && perl -e "print lc($TXT)"

Najelegantniji je najverovatnije „tr“, pošto tome i služi.
[ Gojko Vujovic @ 09.05.2003. 22:33 ] @
t0wk me pretekao pa dao skoro sva rešenja. I šta ja sad da napišem? :)

Smisliću neko.. valjda..
[ tOwk @ 10.05.2003. 05:03 ] @
Znaš kako bi trebalo da može: da napraviš sed skriptu koja će da traži bilo koji od A-Z, da nađenu vrednost obradi nekim programom za računanje kao \1+'a'-'A', i time da zameni. No, ne poznajem toliko sed, a ne bih sad da čitam uputstvo ;-)
[ B o j a n @ 10.05.2003. 15:49 ] @
fino fino l;)
da malo probudimo ovaj deo foruma, evo i nastavka ...

kako selektivno izabrati da se neka slova konvertuju, a neka ne ... na primer; prvo slovo da bude uvek upper, a ostala lower.
[ Gojko Vujovic @ 10.05.2003. 15:57 ] @
Prvo slovo u reči, ili u rečenici ili u redu (line) ?
[ tOwk @ 10.05.2003. 16:04 ] @
# Ovo mi prvo pada na pamet, mada nije baš najelegantnije
PRVO=`echo prOBA | sed 's/^\(.\).*/\1/'| tr a-z A-Z`
OSTATAK=`echo prOBA | sed 's/^.\(.*\)/\1/'| tr A-Z a-z`
# i onda još
rezultat="$PRVO$OSTATAK"

U awk-u, Perl-u i sličnima može i lepše, ali kome to još treba? ;-)
[ B o j a n @ 10.05.2003. 16:06 ] @
pa recimo u reci, kad se stvori nacin da se to uradi, moze vrlo lako i u recenici ili u redu (line) ...
[ tOwk @ 10.05.2003. 16:54 ] @
Probaj \<, \b i slične za početak reči i drugih elemenata, ili već napravi svoj regex za to (npr. tražiš ili početak reda, ili razmak, tačku, zarez, pa slovo itd.), a za malo bolji uvod u regex, pogledaj http://etext.lib.virginia.edu/helpsheets/regex.html.

Kompletna skripta:
Code:
#!/bin/sh

# prvo sve u mala
TXT=`echo $* | tr A-Z a-z` 
for i in a b c d e f g h i j k l m n o p q r s t u v w x y z; do \
  TXT=$(echo $TXT | sed s/\\b$i/`echo -n $i | tr a-z A-Z`/g)
done
echo $TXT


No, valjda ovi drugi (awk, perl) mogu to i mnogo lepše
[ Gojko Vujovic @ 10.05.2003. 21:20 ] @
JavaScript rešenje, za svaku unetu reč:

Code:

<html
<head>
<script language="JavaScript1.2"><!--
function u() {
var p = /(\w)(\w*)/;
var a = document.form1.text1.value.split(/\s+/g);
for (i = 0 ; i < a.length ; i ++ ) {
var z = a[i].match(p);
var f = z[1].toUpperCase();
var r = z[2].toLowerCase();
a[i] = f+r
}
document.form1.text1.value = a.join(' ');
}
//-->
</script>
</head>
<body>
<form name="form1">
<input type="text" name="text1">
<input type="button" onClick="u()" value="Uppercase">
</form>
</body>
</html>
[ Gojko Vujovic @ 10.05.2003. 21:24 ] @
U perlu, veliko slovo u svakoj reči u liniji:

Code:

$text = lc($text);;
$text =~ s/\b(\w)/\U$1/g;

[ -zombie- @ 11.05.2003. 02:50 ] @
php -r "echo ucwords(file_get_contents('php://stdin'))"
php -r "echo ucwords(join('', file('php://stdin')))"
php -r "echo ucwords(fread(STDIN, 999000))"

(naravno, bilo koji od ovih, a ne svi ;)