Kako u bashu promijeniti prvo slovo svake riječi iz tekstualnog fajla da umjesto malo bude veliko ?

  • 7 odgovora
  • 5.201 pregleda
Re: Kako u bashu promijeniti prvo slovo svake riječi iz tekstualnog fajla da umjesto malo bude veliko ? 12.09.2019. u 06:38 · pre 86 meseci #3
Bash:
Code (bash):
while read -r -a words;do echo ${words[@]^};done <<<"lorem ipsum dolor sit amet, consectetur adipiscing elit."

Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit.


Sed:
Code:
sed 's/[[:alpha:]]\+/\u&/g' <<<"lorem ipsum dolor sit amet, consectetur adipiscing elit."

Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit.


Awk:
Code (awk):
awk '{for (i=1; i<=NF; ++i) {$i=toupper(substr($i,1,1)) tolower(substr($i,2));} print}' <<<"lorem ipsum dolor sit amet, consectetur adipiscing elit."

Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit.


Zameni <<< sa <tvoj_file >nov_file, na primer:

Code:
sed 's/[[:alpha:]]\+/\u&/g' <tvoj_file >nov_file
Re: Kako u bashu promijeniti prvo slovo svake riječi iz tekstualnog fajla da umjesto malo bude veliko ? 16.09.2019. u 14:24 · pre 86 meseci #7
Citat:
Imas tih primera koliko hoces na netu

sed -e "s/\b\(.\)/\u\1/g" ulaz.txt > izlaz.txt

I ti mu ponudiš najgori. ;)

Znaš li šta tačka predstavlja? Bilo koji karakter. U tvom primeru, bilo koji karakter u opsegu (\b - word boundary) između \w (word) i \W (non-word) karaktera.

Uzmi neki veći fajl sa rečima pa testiraj svoj primer.

A, možeš i online (10000 reči):

(20000 matches, 147904 steps, ~264ms) VS (10000 matches, 32284 steps, ~73ms)

Kao što možeš da vidiš iz primera [[:alpha:]]+ regex traži samo reči. Plus predstavlja jedan ili više (u ovom slučaju alpha) karaktera, dakle traži koliko god je moguće alpha znakova u nizu, zbog čega ga i nazivaju "greedy" kvantifikatorom.
Re: Kako u bashu promijeniti prvo slovo svake riječi iz tekstualnog fajla da umjesto malo bude veliko ? 17.09.2019. u 18:27 · pre 86 meseci #8
Ja samo ovo nasao kao postavljanje Capital tj. velikog slova na pocetak reci. Nisam trazio mnogo, mene je interesovalo samo da postavi veliko slovo a podrazumevalo se da bude rec tj. ime.
Imam ja jos primera, neki su i tvoji, zapisem da se nadje. Nisam ja bas strucnjak, ja sam "resavska skola" skrpim upit na google kad mi zatreba a kad ne ukapiram onda kukam ovde :)
Normalno sad cu i ovo tvoje da zapise da se nadje.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme