Portál AbcLinuxu, 11. května 2025 16:01

Dotaz: vlozenie medzier pred velke pismena

5.1.2007 10:09 escape
vlozenie medzier pred velke pismena
Přečteno: 139×
Odpovědět | Admin
Ahoj, mam suvisly text bez medzier, v ktorom kazde slovo zacina velkym pismenom, teda asi takto :
LoremIpsumDolorSitAmet,ConsectetuerAdipiscingElit.MorbiNibh
Text potrebujem previest do povodnej podoby, teda vlozit medzeru pred kazde velke pismeno.

d.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.1.2007 10:17 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
Odpovědět | | Sbalit | Link | Blokovat | Admin
| sed 's/\([A-Z]\)/ \1/g'
Weblate - překládání přes web | Gammu SMSD - posílání SMS | Blog
5.1.2007 11:29 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
mike@lion:~> echo $LANG
cs_CZ.UTF-8
mike@lion:~> echo "LoremIpsumDolorSitAmet" | sed 's/\([A-Z]\)/ \1/g'
 L o r e m I p s u m D o l o r S i t A m e t
mike@lion:~> echo "LoremIpsumDolorSitAmet" | sed 's/[[:upper:]]/ &/g'
 Lorem Ipsum Dolor Sit Amet
5.1.2007 11:39 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
To nechápu :-)
$ echo $LANG
cs_CZ.UTF-8
$ echo "LoremIpsumDolorSitAmet" | sed 's/\([A-Z]\)/ \1/g'
 Lorem Ipsum Dolor Sit Amet
5.1.2007 11:55 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena

Zdá se, že existují (přinejmenším) dvě verze českého locale. To moje (OpenSuSE 10.2) řadí takto:

  mike@lion:~/tmp> echo -e "aa\nab\nAa\nAb\nba\nbb\nBa\nBb" | sort
  Aa
  aa
  Ab
  ab
  Ba
  ba
  Bb
  bb

což by podle mých znalostí českého řazení mělo být správně.

5.1.2007 13:36 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
imho je to chybné, rozsah A-Z sú iba veľké písmená. Použitie upper je však správne

btw, ako sa ten váš predchádzajúci "chybný" sed chová, ak mu v reťazci dáte aj písmeno z? Podľa tejto logiky by malo zostať bez medzery.

5.1.2007 13:49 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena

Proč myslíte, že je to chybné? Já si tím nejsem tak jistý. Dokonce bych spíš řekl, že je to správně.

Ano, před 'z' mezera nebude, stejně jako před 'ž' nebo 'Ž':

  mike@lion:~/tmp> echo "abczdefŽghižjkl" | sed 's/\([A-Z]\)/ \1/g'
   a b cz d e fŽ g h iž j k l
5.1.2007 14:00 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
aby to bylo složitější a zajímavější, tak záleží na tom, jaké RE se používají (v perlu se to chová jinak):
[ivok@zero ~]$ echo $LANG
cs_CZ.UTF-8
[ivok@zero ~]$  echo -e "aa\nab\nAa\nAb\nba\nbb\nBa\nBb" |  grep -o '[a-z]*'
aa
ab
ba
bb
Ba
Bb
[ivok@zero ~]$  echo -e "aa\nab\nAa\nAb\nba\nbb\nBa\nBb" |  grep -P -o '[a-z]*'
aa
ab
ba
bb
5.1.2007 14:42 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
Souvislost se sortem mi i mému sortu uniká:
$ echo -e "aa\nab\nAa\nAb\nba\nbb\nBa\nBb" | sort
Aa
aa
Ab
ab
Ba
ba
Bb
bb
5.1.2007 14:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
Já vidím souvislost v tom, že platí-li 'A' < 'a' < 'B' < 'Z', měl by interval 'A-Z' obsahovat i písmeno 'a'.
5.1.2007 15:07 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
Ale tady platí 'A' < 'a' < 'B' < 'Z' a interval 'A-Z' písmeno A neobsahuje. Asi to bude verzí libc nebo locales…
5.1.2007 15:14 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
A respektuje ten sed vůbec locales? Obsahuje pro něj interval 'A-Z' třeba 'Č'? U mne třeba tr ignoruje locales úplně:
  mike@lion:~> tr '[:lower:]' '[:upper:]'
  aábcčdďéěf
  AáBCčDďéěF
5.1.2007 15:19 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
... U mne třeba tr ignoruje locales úplně ...
Jen jestli to náhodou není tím, že tr ignoruje spíš to unicode :-)
$ echo č | tr '[:lower:]' '[:upper:]'
Č
$ echo $LANG
cs_CZ
aka ISO Latin 2
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
5.1.2007 15:21 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
Ano respektuje:
$ echo "LoremIpsŽČŠĚŘumDolorSitiiAmet" | sed 's/\([A-Z]\)/ \1/g'
 Lorem IpsŽ Č Š Ě Řum Dolor Sitii Amet
Co jsem koukal do Debianích patchů na locales, tak se tam převádí České locales na ISO 14651, což sice nevím co je, ale může to být důvod jiného chování.
5.1.2007 15:23 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
Tedy ...převádí řazení v českých locales na...
5.1.2007 16:19 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
hmm, toto ISO ... skúste sa pohrať s nastavením LC_COLLATE :-)
5.1.2007 10:19 finn | skóre: 43 | blog: finnlandia | 49° 44´/13° 22´
Rozbalit Rozbalit vše Re: vlozenie medzier pred velke pismena
Odpovědět | | Sbalit | Link | Blokovat | Admin
echo "LoremIpsumDolorSitAmet" | sed 's/[A-Z]/ &/g'
Užívej dne – možná je tvůj poslední.

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.