Editor di flusso (SED): nozioni di base

Editor Di Flusso Sed Nozioni Di Base



SED, noto anche come editor di flussi, è uno strumento molto utile. Viene utilizzato per cercare una parola o uno schema particolare e successivamente fare qualcosa con la parola o lo schema o, in altre parole, trasformarlo. In Windows, SED è conosciuta anche come funzioni “trova” e “sostituisci”. SED viene fornito con Ubuntu, quindi non è necessario installare nulla; inizia a usarlo. In questo tutorial ti spiegheremo come utilizzare SED o l'editor di flusso.

Il comando “S”.

Il più importante di tutti i comandi in SED o nell'editor di flusso è il comando 's'. La “s” sta per sostituto. La sintassi è la seguente:







'S / espressione regolare / sostituzione / bandiere


Quindi, utilizziamo un file chiamato 'file.txt' per gli esempi. Ecco come appare 'file.txt' se lo catturi:




Usiamo un esempio per mostrare come funziona il comando 's':



Ma 'S / Primo / luna / ho il file.txt > luna.txt


Quando viene data tale espressione, significa:





    • s – Sta per sostituto.
    • primo – La parola da cercare nel file chiamato “file.txt”.
    • luna – La parola “prima” è sostituita dalla parola “luna”.
    • i – Sta per ignorare. Ignoreremo questa parte per la prima parte.
    • file.txt – Il file in cui SED cercherà il modello o la parola. In questo caso la parola “primo” sarà:
    • cercato nel file.txt

    • moon.txt – Quando la parola “first” viene sostituita dalla parola “moon”, verrà salvata in “moon.txt”.

Allora, cosa sta succedendo qui? SED sostituisce la parola 'primo' con 'luna' solo nella prima istanza (ciò significa che se la parola 'primo' ricorre più volte, non la sostituirà dappertutto né la sostituirà più volte). Il file che cerca si chiama “file.txt” e una volta effettuata la trasformazione o la sostituzione, verrà salvato sotto “moon.txt”.



Ecco come appare:


Ricordati di inserire la '/' dove deve essere. Se ometti una '/', SED non accetterà il comando.

Finora abbiamo sostituito solo la parola “primo” con “incontrato”. Supponiamo ora di voler sostituire la parola “linea” (che ricorre molte volte – quattro volte per essere precisi) nella terza riga con la parola “angelo”.

Come miriamo specificamente a quella terza linea? Usiamo il seguente comando:

Ma '3 secondi / linea / angelo / ho il file.txt > angelo.txt


Allora, cos'è successo qui? Bene, il '3' specifica il numero di riga. Pertanto, va alla terza riga. Quindi, sostituisci la parola “line” con “angel” nel file chiamato “file.txt” e salva il file trasformato come “angel.txt”.


Cosa succede se vogliamo sostituire o trasformare le linee “3” e “4”?

Ma ' 3 ,4s / linea / angelo / ho il file.txt > angelo2.txt



Tieni presente che nell'esempio precedente abbiamo utilizzato il flag 'i' per ignorare. Ora utilizziamo il flag “g” per globale.

Usiamo un esempio per mostrare come funziona il comando 's':

Ma 'S / linea / sole / g’file.txt > sole.txt


Quando viene data tale espressione, significa:

La “g” sta per globale. Ricorda che nel primo esempio, quando utilizziamo il flag “i”, c'è una sola sostituzione. Ora che abbiamo aggiunto una “g” per globale, significa sostituto ovunque. Quindi, invece di dire prima riga, seconda riga, terza riga e ultima riga, si dice primo sole, secondo sole, terzo sole e ultimo sole. Sostituisce la riga della parola nell'intero file (ovunque) con la parola 'sole'.


E se volessimo selezionare una singola riga in base alla parola che contiene? Bene, possiamo vedere che l'ultima riga di 'file.txt' contiene la parola 'last'. Supponiamo ora di volere 'Questa è l'ultima riga'. Questa è l’ultima frase.” frase per diventare “Questo è l’ultimo fantasma. Questa è l’ultima frase.”

Scriviamo quanto segue:

Ma ' / scorso / S / linea / fantasma / 'file.txt > fantasma.txt


L'“ultimo” qui dice al SED di cercare la riga che contiene la parola “ultimo” e quindi di sostituire la parola “linea” con “fantasma” all'interno di quella riga.


Supponiamo ora di voler fare il contrario. Supponiamo di volere che ogni riga senza la parola 'ultimo' abbia la parola 'riga' cambiata in 'ghost'. Scriviamo quanto segue:

Ma ' / scorso /! S / linea / fantasma / 'file.txt > fantasma2.txt


Come puoi vedere qui, ogni riga tranne l'ultima (che contiene la parola 'last') ha la parola 'riga' sostituita con la parola 'ghost'.


Possiamo farlo anche con i numeri di riga:

Ma ' 3 , 4 ! S / linea / notte / ho il file.txt > notte.txt


In questo caso, le righe 3 e 4 vengono omesse ma ogni altra riga ha la parola “riga” sostituita dalla parola “notte”.

Comandi multipli

E se avessi più comandi? Preferiresti farlo uno alla volta o tutti in una volta e risparmiare tempo e lavoro?

E se volessimo cambiare la parola “primo” in “giorno”, “secondo” in “notte” e “il resto” in “fantasma”? Usiamo il punto e virgola per farlo. Non dimenticare di mettere il punto e virgola alla fine!

Tieni presente che non devi assolutamente mettere il flag “i” o il flag “ignore” ma devi assolutamente mettere la barra (/) dopo la frase di trasformazione.

Ora, controlliamolo con un esempio:

Ma 'S / Primo / giorno / ; S / secondo / notte / ; S / terzo / fantasma / ; S / scorso / fantasma / ;’file.txt > combinazione.txt


Conclusione

L'editor di flusso o SED è un modo per selezionare una parola o un modello e trasformarlo. In realtà è l'equivalente da riga di comando delle funzioni 'trova' e 'sostituisci' di Windows. Il comando SED può diventare davvero complicato ma se conosci almeno le basi, sei pronto per affrontarlo! SED è in realtà uno strumento molto potente con molte funzioni. Anche se non possiamo trattarli tutti in un unico tutorial, abbiamo trattato le basi del SED. In sostanza, abbiamo imparato come trasformare una particolare parola utilizzando il comando “s” dove “s” sta per sostituto. Possiamo sostituire le parole con altre parole, scegliere selettivamente una riga in cui avverrà la sostituzione o addirittura negarla. In ogni caso, questa è la parte più semplice del SED.

Buona codifica!