Come sostituire più righe usando il comando sed

Come sostituire più righe usando il comando sed
A volte richiede di sostituire più righe di un file con un particolare carattere o testo. Diversi comandi esistono in Linux per sostituire più righe di un file. Il comando 'sed' è uno di questi a fare questo tipo di attività. La forma completa di "SED" è Steam Editor ed è principalmente utilizzata per leggere e convertire il testo in diversi modi usando un'espressione regolare. In che modo questo comando può essere utilizzato per sostituire le più righe di un file in diversi modi sono spiegati in questo tutorial.

Cheat sheet "sed" comunemente usato:

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

Carattere Scopo
UN Viene utilizzato per l'aggiunta di contenuti.
B Viene utilizzato per il contenuto di ramificazione.
C Viene utilizzato per cambiare 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 di tenuta.
G Viene utilizzato per aggiungere dal testo di tenuta.
H Viene utilizzato per copiare nel testo di tenuta.
H Viene utilizzato per aggiungere al testo di tenuta.
io È usato per l'inserimento.
IO Viene utilizzato per stampare la linea sostitutiva.
N È usato per andare alla riga successiva.
N Viene utilizzato per aggiungere la riga di input successiva.
P È usato per stampare.
P Viene utilizzato per stampare la prima riga.
Q È usato per smettere.
Q È usato per smettere immediatamente.
R Viene utilizzato per leggere il file.
R Viene utilizzato per leggere la riga dal file.
S È usato per sostituire.
T Viene utilizzato per testare la sostituzione.
T Viene utilizzato per verificare la sostituzione.
w Viene utilizzato per scrivere nel file.
W Viene utilizzato per scrivere una riga al file.
X Viene utilizzato per scambiare motivi e tenere.
y È usato per tradurre.
z È usato per cancellare la linea.
'=' Viene utilizzato per stampare il numero di riga.

Sostituisci più righe utilizzando il comando "sed" dal terminale:

In che modo il comando "sed" può essere utilizzato per sostituire le più righe da un file dal terminale è mostrato in questa parte di questo tutorial. Crea un file denominato sed.TXT Con i seguenti contenuti test i comandi di questa parte.

sed.TXT

La forma completa di SED è "Stream Editor".

È 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 espressioni regolari.

Esempio-1: sostituire due linee 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 i dati nulli prima di aggiungere il testo di sostituzione. Secondo il comando, il 3Rd e 4th Le righe del file verranno sostituite dal testo, 'È uno strumento molto utile'.

$ cat sed.TXT
$ sed -z 's/It è stato sviluppato da Lee E. McMahon.\ nit viene utilizzato per il testo
in lavorazione./È uno strumento molto utile./'sed.TXT

La seguente output apparirà dopo aver eseguito i comandi.

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

Il seguente comando "sed" sostituirà tutte le righe che iniziano con la parola, 'Esso' dalla parola, "Questa riga viene sostituita '.

$ cat sed.TXT
$ sed 's/^it.*/Questa riga viene sostituita/g 'sed.TXT

La seguente output apparirà dopo aver eseguito i comandi. Tre righe contengono la parola 'Esso'Nel file. Quindi, queste righe sono state sostituite dal testo di sostituzione.

Esempio-3: sostituire più righe in base alla partita e al comando successivo

Il seguente comando "sed" sostituirà la parola "È"Per la parola,"era"Con il comando successivo," N ".

$ cat sed.TXT
$ sed 'n;/is/s/is/was/' sed.TXT

La seguente output apparirà dopo aver eseguito i comandi. Qui, 'È' esiste nel 2nd e 4th righe del file e queste righe sono 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 denominato studenti.TXT con il seguente contenuto in cui verrà applicato lo script "sed".

studenti.TXT

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

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

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

sostituire.sed

/ Cse/
p; n;
/ 35/
S/35/45/;
p; d;

/ 15/
S/15/55/;
p; d;


P;

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

$ Cat Students.TXT

Il comando seguente sostituirà il contenuto di più righe in base allo script SED.

$ sed -n -f sostituire.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 usando il comando "sed". In questo tutorial è visualizzato anche lo script "sed". Spero che questo tutorial aiuterà il lettore a sostituire più righe di qualsiasi file utilizzando il comando "SED".