[GNU/Linux] Regex

Messaggioda Fab996 » 10/11/2017, 14:28

Perchè se ho questo testo
"fsane
vfsdvfdzne" e utilizzo grep 'ne$' mi trova solamente fsane?
Fab996
Senior Member
Senior Member
 
Messaggio: 530 di 1118
Iscritto il: 10/10/2015, 11:05

Re: [GNU/Linux] Regex

Messaggioda killing_buddha » 10/11/2017, 15:58

Forse perche' $ individua un a capo, che evidentemente se il tuo codice e'
Codice:
1 fsane
2 vfsdvfdzne

e non
Codice:
1 fsane
2 vfsdvfdzne
3

la regex non sa trovare.
Avatar utente
killing_buddha
Cannot live without
Cannot live without
 
Messaggio: 1454 di 5766
Iscritto il: 03/05/2008, 17:33

Re: [GNU/Linux] Regex

Messaggioda Fab996 » 10/11/2017, 16:05

Stavo vedendo che in realtà funziona anche senza andare a capo, più che altro non mi funziona in questo codice
Codice:
ciao come staine
io tutto bene
e tu
Sempre il comando grep 'ne$' trova solamente staine
Fab996
Senior Member
Senior Member
 
Messaggio: 531 di 1118
Iscritto il: 10/10/2015, 11:05

Re: [GNU/Linux] Regex

Messaggioda apatriarca » 10/11/2017, 17:38

Potresti mostrare in che modo usi grep? Sembra che grep si fermi al primo risultato.
apatriarca
Moderatore
Moderatore
 
Messaggio: 4888 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [GNU/Linux] Regex

Messaggioda Fab996 » 10/11/2017, 17:47

grep 'ne$' nomefile
Fab996
Senior Member
Senior Member
 
Messaggio: 532 di 1118
Iscritto il: 10/10/2015, 11:05

Re: [GNU/Linux] Regex

Messaggioda apatriarca » 10/11/2017, 17:53

A me funziona mostrando entrambe le righe.. Sicuro non ci siano spazi o altri caratteri prima della fine della riga? Su quale sistema stai facendo il test?
apatriarca
Moderatore
Moderatore
 
Messaggio: 4890 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [GNU/Linux] Regex

Messaggioda Fab996 » 10/11/2017, 18:07

Ok grazie, penso proprio che fosse un problema di spazi, ho riscritto la frase e funziona.
Invece avendo quest'altra istruzione
Codice:
sed '/^ciao/,/^come/s/A/_/'
dovrebbe sostituire A con _ se A è compresa tra ciao e come?
Quindi come può esser fatto un file di testo che rispecchia questo pattern?
Fab996
Senior Member
Senior Member
 
Messaggio: 533 di 1118
Iscritto il: 10/10/2015, 11:05

Re: [GNU/Linux] Regex

Messaggioda anonymous_be1147 » 10/11/2017, 23:11

ciao
bastA usAre
un esempio
come questo
anonymous_be1147
Cannot live without
Cannot live without
 
Messaggio: 1535 di 3226
Iscritto il: 02/03/2006, 20:20

Re: [GNU/Linux] Regex

Messaggioda Fab996 » 11/11/2017, 11:49

anonymous_be1147 ha scritto:ciao
bastA usAre
un esempio
come questo


Grazie :lol:
Però non capisco avendo questo testo:
gfdsgs
sgs
fgs
gs
ciao
fafdagfd...agda
come

se eseguo
Codice:
sed '/^ciao/^come/s/.../_/'
perchè non mi sostituisce i ... con _ ?
Fab996
Senior Member
Senior Member
 
Messaggio: 534 di 1118
Iscritto il: 10/10/2015, 11:05

Re: [GNU/Linux] Regex

Messaggioda anonymous_be1147 » 11/11/2017, 12:02

Perché il punto corrisponde a un qualsiasi caratttere (non al carattere . ) e quindi vengono sostituiti i primi 3 caratteri incontrati (cia etc nel tuo esempio1)

Note

  1. Ammesso di correggere chiaramente il comando sed in sed '/^ciao/,/^come/s/.../_/' - (manca una virgola). La versione corretta sarebbe quindi sed '/^ciao/,/^come/s/\.\.\./_/'
anonymous_be1147
Cannot live without
Cannot live without
 
Messaggio: 1536 di 3226
Iscritto il: 02/03/2006, 20:20

Prossimo

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite