Come sostituire più righe usando il comando `sed`

A volte è necessario sostituire più righe di un file con un particolare carattere o testo. Esistono diversi comandi in Linux per sostituire più righe di un file. ‘sed’ comando è uno di loro per fare questo tipo di attività. La forma completa di` sed ‘ è Steam Editor, ed è utilizzato principalmente per leggere e convertire il testo in modi diversi utilizzando un’espressione regolare., Come questo comando può essere utilizzato per sostituire le righe multiple di un file in modi diversi sono spiegati in questo tutorial.

Cheat Sheet `sed` comunemente usato:

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

Carattere Scopo
a Viene utilizzato per aggiungere contenuti.
b Viene utilizzato per la ramificazione del 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 usato per copiare dal testo in possesso.
G Viene utilizzato per aggiungere dal testo in possesso.
h Viene utilizzato per copiare nel testo in possesso.
H Viene utilizzato per aggiungere al testo in possesso.
i Viene utilizzato per l’inserimento.
I Viene utilizzato per stampare la linea sostitutiva.,
n Viene utilizzato per passare 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 uscire.
Q È usato per uscire immediatamente.
r È usato per leggere il file.
R È usato per leggere la riga dal file.
s È usato per sostituire.,
t Viene utilizzato per testare la sostituzione.
T Viene utilizzato per verificare l’assenza di sostituzione.
w È usato per scrivere nel file.
W È usato per scrivere una riga nel file.
x Viene utilizzato per scambiare modelli e tenere premuto.
y È usato per tradurre.
z È usato per cancellare la linea.
‘=’ Viene utilizzato per stampare il numero di riga.,

Sostituire più righe utilizzando il `sed` comando da terminale:

Come il `sed` di comando può essere utilizzato per sostituire il più righe da un file dal terminale è mostrato in questa parte di questo tutorial. Creare un file denominato sed.txt con il seguente contenuto testare i comandi di questa parte.

sed.txt

La forma completa di sed è “stream editor”.

Si tratta di un programma di utilità Unix che viene utilizzato 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, la 3a e la 4a riga del file saranno sostituite dal testo, ‘È uno strumento molto utile’.

cat cat sed.txt
s sed-z ‘s/E’ stato sviluppato da Lee E. McMahon.\ nIt è usato per l’elaborazione del testo
.,/ È uno strumento molto utile./ ‘sed.txt

Il seguente output apparirà dopo aver eseguito i comandi.

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

Il seguente comando `sed` sostituirà tutte le righe che iniziano con la parola, ‘It’ con la parola, ‘Questa riga è sostituita ‘.

cat cat sed.txt
s sed ‘ s / ^ It.* / Questa linea è sostituita / g ‘ sed.txt

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

Esempio-3: Sostituisci più righe in base al comando match e next-line

Il seguente comando `sed` sostituirà la parola,’is‘ con la parola, ‘was‘ con il comando next-line, ‘n’.

cat cat sed.txt
s sed ‘ {n;/ is/{s/is/ was/}}’ sed.txt

Il seguente output apparirà dopo aver eseguito i comandi. Qui,’ is ‘ esiste nella 2a e 4a riga del file, e queste righe sono modificate dalla parola ‘was’.,

Sostituire 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, allora è meglio creare un file sed con lo script. Creare un file di testo denominato studenti.txt con il seguente contenuto in cui verrà applicato lo script ‘sed’.

studenti.txt

Esempio-4: Sostituire più righe di un file utilizzando il file di script `sed`

Creare un file sed chiamato per sostituire.,sed con il seguente contenuto per sostituire le righe multiple in base al modello di ricerca. Qui, la parola ‘ CSE ‘ verrà cercata 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.

sostituisci.sed

/CSE/ {
p;n;
/35/ {
s/35/45/;
p;d;
}
/15/ {
s/15/55/;
p;d;
}
}
p;

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

students studenti cat.txt

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

$ sed-n-f replace.studenti sed.txt

Il seguente output apparirà dopo aver eseguito il comando.

Conclusione

Diversi modi per sostituire più righe o il contenuto delle righe multiple utilizzando il comando `sed` sono stati mostrati in questo tutorial., Come lo script ‘ sed ‘ può essere eseguito da un file sed è anche mostrato in questo tutorial. Spero che questo tutorial aiuterà il lettore a sostituire più righe di qualsiasi file utilizzando il comando `sed`.

Author: admin

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *