sed

Come sostituire tutto dopo il modello usando il comando 'sed'

Come sostituire tutto dopo il modello usando il comando 'sed'

Le attività di sostituzione possono essere eseguite in Linux in diversi modi. Il comando 'sed' è uno dei modi per eseguire l'attività di sostituzione. Questo comando può essere utilizzato per sostituire il testo in una stringa o in un file utilizzando un modello diverso. Come puoi sostituire tutto dopo che il modello corrispondente usando il comando 'sed' è mostrato in questo tutorial.

Sostituisci tutto dopo la corrispondenza in una stringa:

In questa sezione di questo tutorial è stato mostrato come sostituire la parte di una stringa in base a un modello corrispondente e $PARTITION_COLUMN. Ma questa variabile funziona se il modello corrisponde a qualsiasi parola all'inizio o al centro della stringa. Non sostituirà il testo se il modello corrisponde all'ultima parola della stringa.

Esempio 1: sostituisci tutto dopo la corrispondenza utilizzando $PARTITION_COLUMN

Il seguente comando cercherà il carattere 'a' e la parte restante dopo 'a' sarà sostituita dal testo, "un popolare sito di blog". $PARTITION_COLUMN.* viene utilizzato per definire la parte rimanente dopo il carattere, 'a'.

$ echo "LinuxHint è un sito web" | sed "s/a $PARTITION_COLUMN.*/un popolare sito di blog/"

Il seguente output apparirà dopo aver eseguito il comando. Qui, "un sito web" è stato sostituito da "un popolare sito di blog".


Il modello seguente cercherà la parola 'ragnatela'  nella stringa e sostituisci la parte rimanente con 'ragnatela' dal testo, 'un popolare sito blog'se la corrispondenza esiste e 'ragnatela' non è la parte dell'ultima parola della stringa.

$ echo "LinuxHint è un sito web" | sed "s/web.* $PARTITION_COLUMN.*/un popolare sito di blog/"

Il seguente output apparirà dopo aver eseguito il comando. Qui, "sito web" è l'ultima parola della stringa e per questo motivo non è stata eseguita alcuna sostituzione.

Esempio 2: Sostituisci tutto dopo la corrispondenza usando il modello

Il seguente comando cercherà la parola 'bash' globalmente nella stringa e sostituisci tutto con la parola se la parola esiste nella stringa. 'g' viene utilizzato qui per la ricerca globale.

$ echo "Mi piace la programmazione bash" | sed "s/bash.*/script Python/g"

Il seguente output apparirà dopo aver eseguito il comando. Qui, "bash" esiste nel mezzo della stringa e la sostituzione è stata eseguita.

Sostituisci tutto dopo la corrispondenza in un file:

Tutto il contenuto di una particolare riga o più righe o righe rimanenti di un file dopo la corrispondenza può essere sostituito utilizzando il 'sed'comando. Crea un file di testo chiamato presenze.TXT con il seguente contenuto per testare gli esempi mostrati in questa sezione.

presenze.TXT

1108885 è presente
1999979 è presente
1769994 è assente
1105656 è assente
1455999 è assente

Esempio -3: Sostituisci tutto il contenuto di una riga di un file dopo la corrispondenza

Il seguente comando 'sed' cercherà il numero 1769994 nel file e tutto ciò con il numero verrà sostituito dal testo, '1586844 è presente' se il numero esiste in qualsiasi riga del file.

$ cat alleanza.TXT
$ sed "s/1769994.*/1586844 è presente/" presenza.TXT

Il seguente output apparirà eseguendo i comandi. Qui, il numero di ricerca esiste nella terza riga del file e la sostituzione è stata eseguita.

Esempio -4: Sostituisci tutto il contenuto da più righe di un file dopo la corrispondenza

Il seguente comando 'sed' mostra l'uso della variabile $PARTITION_COLUMN per sostituire più righe dal file. Il comando cercherà "110" all'inizio di ogni riga del file e sostituirà tutto con "110" con il testo "Voce non valida" dove verrà trovato il testo corrispondente.

$ presenza del gatto.TXT
$ sed "s/^110.* $PARTITION_COLUMN.*/Ingresso non valido/" partecipazione.TXT

Il seguente output apparirà dopo aver eseguito i comandi. '110' esiste in due righe del file e queste sono state sostituite dal testo sostitutivo.

Esempio-5: sostituire tutto il contenuto di una riga di un file utilizzando 'c' dopo la corrispondenza

Il seguente 'sed' comando mostra l'uso di 'c'per sostituire tutto dopo la partita. Qui, 'c' indica il cambiamento. Il comando cercherà la parola 'presente' nel file e sostituisci tutto della riga con il testo, 'Questa linea è stata sostituita'se la parola esiste in qualsiasi riga del file.

$ presenza del gatto.TXT
$ sed '/presente/c Questa riga viene sostituita con 'presenza.TXT

Il seguente output apparirà dopo aver eseguito i comandi. La parola "presente" esiste nelle prime due righe del file e queste due righe sono state sostituite dal testo sostitutivo.

Esempio 6: sostituire tutto il contenuto di una riga di un file in base al modello iniziale e finale

A volte è necessario sostituire il testo in base al modello iniziale e finale. Il seguente comando 'sed' mostra il modo per definire i modelli di inizio e fine per sostituire le righe da un file. Il comando cercherà quelle righe nel file che inizia con il numero 110 e termina con la parola 'assente' e sostituirà tutto con la parola 'sostituito' dove i modelli corrispondono.

$ presenza del gatto.TXT
$ sed -e 's/^110.*assente$/sostituito/g' presenze.TXT

Il seguente output apparirà dopo aver eseguito i comandi. Qui, la prima e la quarta riga iniziano con il numero 110, ma la parola "assente" esiste solo nella quarta riga. Quindi, la quarta riga del file è stata sostituita dal testo sostitutivo.

Conclusione:

Il comando 'sed' è uno strumento molto potente di Linux per eseguire diversi tipi di attività relative all'elaborazione del testo. L'attività di sostituzione basata sul modello corrispondente è discussa in questo tutorial utilizzando vari tipi di modelli nel comando 'sed''. $PARTITION_COLUMN, 'c' e '.*' viene utilizzato in questo tutorial per sostituire tutto di una riga del file in cui esiste il modello corrispondente. Gli usi di alcuni caratteri di definizione dei modelli sono stati mostrati qui, come '^' e '$'. Esistono molti altri caratteri per definire il modello nell'espressione regolare per scopi di ricerca. Spero che questo tutorial aiuti il ​​lettore a conoscere le basi per sostituire tutto da un file dopo la partita.

SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...
Tutorial Battaglia per Wesnoth
The Battle for Wesnoth è uno dei giochi di strategia open source più popolari a cui puoi giocare in questo momento. Non solo questo gioco è in svilupp...
0 A.D. Tutorial
Tra i tanti giochi di strategia in circolazione, 0 A.D. riesce a distinguersi come un titolo completo e un gioco molto profondo e tattico nonostante s...