Re: [GNU/Linux] Regex

Messaggioda Fab996 » 15/11/2017, 23:25

Grazie, scusa se ti rispondo adesso.
Fab996
Senior Member
Senior Member
 
Messaggio: 535 di 1118
Iscritto il: 10/10/2015, 11:05

Re: [GNU/Linux] Regex

Messaggioda Fab996 » 19/11/2017, 23:52

Scusa avrei un altro dubbio riguardo il comando sed, perchè a volte si mette lo $/$ mentre altre volte no ? Per esempio eliminare le ultime due righe
Codice:
sed '2,$d'
mentre eliminare una riga vuota
Codice:
sed '/^$/d'
Fab996
Senior Member
Senior Member
 
Messaggio: 536 di 1118
Iscritto il: 10/10/2015, 11:05

Re: [GNU/Linux] Regex

Messaggioda anonymous_be1147 » 20/11/2017, 00:28

Be', semplificando molto, un'istruzione per sed può essere costituita da 0, 1 oppure 2 indirizzi, a cui segue una funzione (comando). Nel tuo caso la funzione è d (delete=elimina). Ora un indirizzo può essere: un'espressione regolare, un numero (di riga) oppure il simbolo di dollaro (che corrisponde all'ultima riga dell'input). Due indirizzi sono separati da una virgola. Gli indirizzi servono in genere per selezionare le righe su cui operare.

Nel primo caso hai 2 indirizzi (separati dalla virgola) e una funzione di sed (d=elimina), nel secondo caso invece hai 1 indirizzo (l'espressione regolare) e la funzione d, che verrà applicata alle righe sulle quali si ha corrispondenza con l'espressione regolare.

Quindi il comando sed '2,$d' elimina tutte le righe a partire dalla seconda fino all'ultima dell'input. In pratica 2,$ seleziona un intervallo di righe: dalla 2 fino all'ultima.

Un'espressione regolare è di solito delimitata dal carattere /, ma nulla vieta di usare un'altro carattere a piacere (in questo caso va "dichiarato", facendolo precedere da un backslash \ ). Ad esempio. il secondo comando potrebbere essere scritto anche: sed '\x^$xd' oppure sed '\,^$,d' o ancora sed '\d^$dd etc.

In ogni caso è tutto spiegato in dettaglio nella manpage del comando sed (per il tuo sistema operativo, perché ci sono varie versioni di sed in giro). :)
anonymous_be1147
Cannot live without
Cannot live without
 
Messaggio: 1542 di 3226
Iscritto il: 02/03/2006, 20:20

Re: [GNU/Linux] Regex

Messaggioda Fab996 » 20/11/2017, 16:41

Grazie mille :)
ps. quindi due indirizzi formano un range ?
Fab996
Senior Member
Senior Member
 
Messaggio: 537 di 1118
Iscritto il: 10/10/2015, 11:05

Re: [GNU/Linux] Regex

Messaggioda anonymous_be1147 » 20/11/2017, 22:53

Esatto.
anonymous_be1147
Cannot live without
Cannot live without
 
Messaggio: 1544 di 3226
Iscritto il: 02/03/2006, 20:20

Precedente

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite