Newsgroup: it.comp.os.linux.sys
Titolo: Maghi delle regexp fatevi avanti ;-)

Come tiro fuori da un file id testo tutte le righe che iniziano _almeno_ con 
n spazi?
Grazie 1000!!!!!!
Tanto che mi ci trovo, come faccio a contare quanri caratteri "x" ci sono 
all'interno di un file... nel modo piu' rapido possibile?
-----------------------------------------------
     Davide D'Amico - SysAdmin
Resp. Sistemi Operativi e Hardware
       Novasoft s.a.s. - Pescara
          Linux User #280127 

 all'interno di un file... nel modo piu' rapido possibile?
Hmmm... qui ci penso un poco...
-- 
cat: .signature: No such file or directory

 all'interno di un file... nel modo piu' rapido possibile?
grep "x" file | wc -m
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
Vote Cthulhu. Why choose the lesser evil?

 
Hmmm...
Il grep sputa tutte e righe contenenti "x".
wc -m conta il numero di caratteri di queste righe (non di "x" 
solamente, ma tutto il contenuto della riga...)
Mi manca qualcosa?


 writes:
DD> Come tiro fuori da un file id testo tutte le righe che iniziano
DD> _almeno_ con n spazi?
Con cosa ? Con grep ?
grep " \{n,\}" file.txt
DD> Tanto che mi ci trovo, come faccio a contare quanri caratteri "x" ci
DD> sono all'interno di un file... nel modo piu' rapido possibile?
man wc (se da shell script).
Saluti,
Luca Polo.
-- 
Luca...@gest.unipd.it
 --- 
http://www.gest.unipd.it/~jake
----------------------------------------------------------
One Ping to rule them all. One Ping to find them.
One Ping to bring down them all.
And in the darkness crash them.         [The Lord of the Pings]

 Mi manca qualcosa?
No, hai ragione.
boh, allora, ci devo pensare anche io. ;)



L'opzione -m mi e' sconosciuta.
cat file|sed s/x//g|wc -b
da' la dimensione del file senza x, se sconosci la dimensione del file basta
fare la differnza (lo so e' orrendo ma...).
Alessandro.

 Hmmm... qui ci penso un poco...
Man uniq.... in particolare l'opzione -c :-D
Grazie cmq.

 writes:
DD> Tanto che mi ci trovo, come faccio a contare quanri caratteri "x" ci
DD> sono all'interno di un file... nel modo piu' rapido possibile?
LP> man wc (se da shell script).
Ops... avevo saltato via la "x".
Di veloce veloce non mi viene in mente nulla:
A=`cat pippo |wc -c`
B=`cat pippo |tr -d [^x] |wc -c`
NumX=`expr $A - $B`


 boh, allora, ci devo pensare anche io. ;)
grep -o "x" | wc -l ?
-- 
none

 n spazi?
Non hai bisogno di un mago, ma di un banale FM. :-)
-- 
No more tradition's chains shall bind us;
Arise, ye slaves! No more in thrall!
The Earth shall stand on new foundations;
We have been naught - We shall be All!

 
credo che un "BINGO!" ci possa stare :P

 all'interno di un file... nel modo piu' rapido possibile?
bo? una cosa tipo
cat file | tr -d'\n'|tr 'x' '\n'|wc -l
.a.
-- 
Il mattino ha l'oro in bocca. Il MATTino ha l'OrO In bOcca.
i lma tt ino ha l'o roin bocc a.ilmattinohal'oroinbocca. il ma tt in
oh al' or oi nb oc ca. il matti noha l'oroinbocca. IL MATtiNO Ha l'ORO
InBOCCa. I l m a t t i n o  h a l' o r o i n b o c c a . ilmattinohal'oroin
BoCcA. iLmAtTiNoHaL'oRoInBoCcA.

 grep -o "x" | wc -l ?
Dovrebbe andare.
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
Analmatrach Utvasvetod Dochieldienve.


tail -m
grep -o
Ma dove le trovate queste opzioni? Sulla mia documentazione non ci sono!-/
Alessandro.

 Ma dove le trovate queste opzioni? Sulla mia documentazione non ci sono!-/
Dipende dalle versioni di (in questo caso) wc, e grep.
in wc 5.2.1 c'e` -m.
in grep 2.5.1 c'e` -o.
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
Heisenberg may have been here.


Su debian woody non ce li ho (sopravvivero' anche senza :-P).
Alessandro.

 Grazie 1000!!!!!!
per esempio con almeno 2 spazi all'inizio:
egrep "^   " file
egrep e' uguale a "grep -E"
non mi sembrava per nulla difficile, ritenta ;)
--
Massimiliano.

 
troppo complicato.
egrep is your friend: egrep "^  " file

 egrep is your friend: egrep "^  " file
Leggili i messaggi, prima, va.
facendo finta che questo tuo consiglio sia relativo all'altra parte del
messaggio, e non a quello quotato, ci sono i quantificatori apposta. Se
devi dire "match almeno 8 spazi", e` molto scomodo farlo come lo fai tu.
Se cosi` non fosse, non avrebbero inventato i quantificatori, no?
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------


 Leggili i messaggi, prima, va.
scusa il quoting da cane.
Mi riferivo alla prima parte. La seconda mi era sfuggita del tutto.
Quanto alla tecnica hai ragione ... ma
Potremmo a questo punto dire che tutto dipende dal numero di spazi, 
perche se gli spazi saranno 463 non credo che va piu' bene contare gli 
spazi per poi sostituire il numero ad "N".
Magari in quel caso userai qualcosa che al volo di sostituisce tutti gli 
spazi con qualcos'altro etc., etc ....
se sono un paio di spazi va benissimo ed e' semplice usare "egrep", se 
sono 10 spazi userai i quantificatori ... se sono qualcosa di piu' in 
pratica userai un metodo diverso.
genericamente va bene tutto, bisogna vedere nel caso in particolare cosa 
conviene utilizzare.
--
massimiliano

 pratica userai un metodo diverso.
Ferma. I quantificatori sono una proprieta` delle regex, e li usi in
ogni caso tu puoi usare una regex[1], tant'e` che la domanda e` "quale
regex" non quale tool. quindi, si discute solo il modello. Che poi la
regex la voglia usare in perl/sed/vim/grep/whatever, non importa,
questione di escape a parte.
[1]
Se li vuoi usare, ovviamente. Del resto TMTOWTDI.
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
If you don't succeed redefine success

 all'interno di un file... nel modo piu' rapido possibile?
Dovrebbe funzionare:
cat file |sed -e 's/[^x]//g' |wc -c
anche se immagino che con sed ci saranno modi più eleganti.
Ciao,
Dan
P.S. per Davide D'Amico: prima per errore ho fatto reply invece di followup!
-- 
Per contattarmi:
s/invalid\.invalid/
libero.it/

 n spazi?
cat $IL_FILE_DA_CONTROLLARE | egrep "^[[:space:]]{$NUMERO_MINIMO_DI_SPAZI,}"
Dovrebbe andare.
Ciao,
 Guido

 cat $IL_FILE_DA_CONTROLLARE | egrep "^[[:space:]]{$NUMERO_MINIMO_DI_SPAZI,}"
Il cat e la pipe, sono superflui.
-- 
                          Maurizio - Tannoiser - Lemmo
                 Founder Member of ERLUG 
http://erlug.linux.it
-------------------------------------------------------------------------------
"I just drank WHAT?" (Socrates)

 Il cat e la pipe, sono superflui.
Orpo! È vero... chissà come mai incasino anche le cose semplici! :)
Ciao,
 Guido.