Newsgroup: it.comp.os.linux.iniziare
Titolo: Come cercare le stringhe di caratteri maiuscoli in un testo?

Ciao!
Avrei gran fretta di poter cercare stringhe di caratteri TUTTI maiuscoli
in un testo (devo selezionare gli acronimi contenuti nel testo).
Avete suggerimenti?
grep [A-Z] file mi trova tutto, anche "La mamma..." a causa della "L" a
inizio periodo.
TIA!!!
Ciao,
Maurizio.

 wrote in message
news:ai5i0u$n7u$1...@fe2.cs.interbusiness.it...

Prova questo:
grep -w [A-Z]+
Dove il + indica "uno o piu'" ed il -w indica "parole intere"
AS

 Avete suggerimenti?
grep [A-Z][A-Z]+
cioe' una maiuscola seguita da almeno un'altra maiuscola immediatamente.
Davide

> grep -w [A-Z]+
C'e` un solo problema: non mi posso accontentare di trovare le righe che
contengono le parole maiuscole; purtroppo devo poter estrarre le singole
parole.
Forse chiedo troppo?
Ciao e grazie,
Maurizio.

 parole.
C'era un comando "filtro" che prendeva un file di testo in input e lo
sbatteva fuori parola per parola, ma non mi ricordo: qualcuno ferrato in
Unix lo sa?
Con quello saresti a posto.
AS

 Forse chiedo troppo?
Mai troppo per un pinguino, se c'e' da manipolare del testo.:-)
Uno dei modi e':
grep -Ew [A-Z]+ nomedelfile |sed -e s/[^A_Z]//g
questo ti trova anche le maiuscole singole.
Se vuoi le parole formate da due o piu', basta fare cosi':
grep -Ew [A-Z][A-Z]+ nomedelfile |sed -e s/[^A_Z]//g
Ah, occhio al locale.
Perche' se hai un locale bislacco (guarda caso l'8859-15 per l'euro e'
uno di questi) A-Z matcha anche le lettere minuscole.
In questo caso, metti un export LANG=C prima, magari facendoti uno
script, cosi' all'uscita torna tutto come prima:
#/bin/sh
export LANG=C
grep -Ew [A-Z][A-Z]+ nomedelfile |sed -e s/[^A_Z]//g
-- 
          |Save our planet!
   Ciao   |Save wildlife!
  roberto |For your E-MAIL use ONLY recycled Bytes  !!
          |roberto poggi   
rpo...@softhome.net

uno di questi) A-Z matcha anche le lettere minuscole.
Ah!
Allora non sono andato di cervello io, il problema e` _davvero_
nel locale come temevo...
D'ora in poi _RIGOROSAMENTE_ LANG=POSIX...
-- 
Ikitt o al limite LANG=C

parole.
Potresti, č solo un idea, estrarre una riga alla volta e passarla in
pasto a cut.
Questo vale se hai un certo schema, ad esempio tutti gli acronimi
all'inizio della riga e la spiegazione dopo, o cose simili.
Per l'estrazione di righe dai file c'č un thread fresco fresco.
Ciao.
-- 
Antonio
| Pretendi una risposta immediata dal NG?
| Puoi ottenerla!
| 
http://groups.google.com/advanced_group_search

 Forse chiedo troppo?
A grep, sicuramente.
Ti conviene passare a qualcosa fatto apposta, ad esempio al Perl.
  wolverine:/tmp$ cat test
  Questi sono alcuni TLA per dimostrare come sia possibile, IMHO,
  estarre degli acronimi da un file di testo. Beh, non sono tutti
  TLA: ci sono ETLA, ed EETLA. Come l'AAAAA (American Association
  Against Acronym Abuse) suggerisce, è inutile qualsiasi acronimo
  formato da più di 5 lettere.
 
  wolverine:/tmp$ cat 
acronym_grep.pl
 
  #!/usr/bin/perl -w
    $count = 0;
  while (<STDIN>) {
  	@words = split /[\,\.\s\:\'\(\)]/, $_;
	foreach (@words) {
		(print $1 . "\n", $count++) if (/^([A-Z]+)$/);
        }
  }
  print "Total: " . $count . "\n";
 
  wolverine:/tmp$ cat test | ./
acronym_grep.pl
 
  TLA
  IMHO
  TLA
  ETLA
  EETLA
  AAAAA
  Total: 6
Primitivo, ma efficace.
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://www.radiance.d2g.com/~zefram
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4