sed

Come sostituire più righe usando il comando 'sed'

Come sostituire più righe usando il comando 'sed'
A volte è necessario sostituire più righe di un file con un carattere o testo particolare. Esistono diversi comandi in Linux per sostituire più righe di un file. Il comando 'sed' è uno di questi per eseguire questo tipo di attività. La forma completa di 'sed' è Steam Editor ed è principalmente usata per leggere e convertire il testo in modi diversi usando un'espressione regolare. Come questo comando può essere usato per sostituire più righe di un file in modi diversi è spiegato in questo tutorial.

Cheat Sheet "sed" comunemente usato:

I caratteri più comunemente usati nel comando 'sed' sono spiegati nella tabella seguente.

Personaggio Scopo
un Viene utilizzato per aggiungere contenuto.
b È usato per ramificare il contenuto.
c Viene utilizzato per modificare il contenuto.
d Viene utilizzato per eliminare una riga di un file.
D Viene utilizzato per eliminare la prima riga di un file.
g Era solito copiare dal testo in attesa.
G È usato per aggiungere dal testo in attesa.
h È usato per copiare nel testo di attesa.
H È usato per aggiungere al testo in attesa.
io Viene utilizzato per l'inserimento.
io Serve per stampare la riga sostitutiva.
n Serve per passare alla riga successiva.
no Viene utilizzato per aggiungere la riga di input successiva.
p È usato per stampare.
P Serve per stampare la prima riga.
q È usato per smettere.
Q Serve per smettere subito.
r È usato per leggere il file.
R È usato per leggere la riga dal file.
S È usato per sostituire.
t È usato per testare la sostituzione.
T È usato per verificare che non ci siano sostituzioni.
w È usato per scrivere sul file.
W È usato per scrivere una riga nel file.
X È usato per scambiare modelli e tenere premuto.
È usato per tradurre.
z È usato per cancellare la linea.
'=' Viene utilizzato per stampare il numero di riga.

Sostituisci più righe usando il comando 'sed' dal terminale:

In questa parte di questo tutorial viene mostrato come utilizzare il comando 'sed' per sostituire più righe da un file dal terminale. Crea un file chiamato sed.TXT con il seguente contenuto testare i comandi di questa parte.

sed.TXT

La forma completa di sed è "editor di flusso".

È un'utilità Unix che viene utilizzata per leggere e convertire il testo in un formato diverso.

È stato sviluppato da Lee E. McMahon.

Viene utilizzato per l'elaborazione del testo.

Supporta le espressioni regolari.

Esempio 1: sostituire due righe consecutive

Il seguente comando 'sed' sostituirà due righe consecutive con un'altra riga. Qui, l'opzione -z viene utilizzata per sostituire le righe consecutive con dati nulli prima di aggiungere il testo sostitutivo. Secondo il comando, il 3rd e 4questo le righe del file saranno sostituite dal testo, 'È uno strumento molto utile'.

$ cat sed.TXT
$ sed -z 's/È stato sviluppato da Lee E. McMahon.\nÈ usato per il testo
in lavorazione./È uno strumento molto utile./' sed.TXT

Il seguente output apparirà dopo aver eseguito i comandi.

Esempio 2: sostituire più righe in base alla corrispondenza e al flag globale

Il seguente comando 'sed' sostituirà tutte le righe che iniziano con la parola, 'E' dalla parola, 'Questa linea è stata sostituita '.

$ cat sed.TXT
$ sed 's/^It.*/Questa riga è stata sostituita/g' sed.TXT

Il seguente output apparirà dopo aver eseguito i comandi. Tre righe contengono la parola 'è'nel file. Quindi, queste righe sono state sostituite dal testo sostitutivo.

Esempio 3: sostituire più righe in base alla corrispondenza e al comando della riga successiva

Il seguente comando 'sed' sostituirà la parola,'è'con la parola,'era' con il comando di riga successiva, 'n'.

$ cat sed.TXT
$ sed ' n;/è/ s/è/era/' sed.TXT

Il seguente output apparirà dopo aver eseguito i comandi. Qui, 'è' esiste nel 2nd e 4questo righe del file e queste righe vengono modificate dalla parola 'era'.

Sostituisci più righe creando il file di script 'sed':

Negli esempi precedenti, i comandi 'sed' sono stati eseguiti dal terminale. Ma è un linguaggio di scripting e se lo script contiene più istruzioni, è meglio creare un file sed con lo script. Crea un file di testo chiamato studenti.TXT con il seguente contenuto in cui verrà applicato lo script 'sed'.

studenti.TXT

ID: 111045
Nome: Robert
Dipartimento: CSE
Lotto: 35
ID: 111876
Nome: Giuseppe
Dipartimento: BBA
Lotto: 27
ID: 111346
Nome: William
Dipartimento: CSE
Lotto: 45
ID: 111654
Nome: Charles
Dipartimento: EEE
Lotto: 41
ID: 111346
Nome: John
Dipartimento: CSE
Lotto: 25
ID: 111746
Nome: Thomas
Dipartimento: CSE
Lotto: 15

Esempio-4: sostituire più righe di un file utilizzando il file di script 'sed'

Crea un file sed chiamato to sostituire.sed con il seguente contenuto per sostituire le righe multiple in base al modello di ricerca. Qui, la parola 'CSE'verrà cercato nel file di testo e, se la corrispondenza esiste, cercherà nuovamente il numero 35 e 15. Se la seconda corrispondenza esiste nel file, verrà sostituita dal numero 45.

sostituire.sed

/CSE/
p;n;
/35/
s/35/45/;
p;d;

/15/
s/15/55/;
p;d;


p;

Esegui il seguente comando per verificare il contenuto esistente del file. 'CSE' è apparso quattro volte nel file di testo. 35 e 15 esistono in due posti.

$ cat studenti.TXT

Il seguente comando sostituirà il contenuto delle righe multiple in base allo script sed.

$ sed -n -f sostituisci.sed studenti.TXT

Il seguente output apparirà dopo aver eseguito il comando.

Conclusione

In questo tutorial sono stati mostrati diversi modi per sostituire più righe o il contenuto di più righe utilizzando il comando 'sed'. In questo tutorial viene mostrato anche come eseguire lo script 'sed' da un file sed. Spero che questo tutorial aiuti il ​​lettore a sostituire più righe di qualsiasi file usando il comando 'sed'.

Installa l'ultimo Dolphin Emulator per Gamecube e Wii su Linux
L'emulatore Dolphin ti consente di giocare ai giochi Gamecube e Wii scelti su Personal Computer Linux (PC). Essendo un emulatore di giochi liberament...
Come utilizzare GameConqueror Cheat Engine in Linux
L'articolo copre una guida sull'utilizzo del motore cheat GameConqueror in Linux. Molti utenti che giocano su Windows utilizzano spesso l'applicazione...
I migliori emulatori di console di gioco per Linux
Questo articolo elencherà il popolare software di emulazione della console di gioco disponibile per Linux. L'emulazione è un livello di compatibilità ...