Come sostituire tutto dopo il pattern usando il comando sed

Come sostituire tutto dopo il pattern 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 un file utilizzando uno schema diverso. Come è possibile sostituire tutto dopo il modello di corrispondenza usando il comando "sed" è mostrato in questo tutorial.

Sostituisci tutto dopo la partita in una stringa:

Come la parte di una stringa può essere sostituita in base a uno schema di corrispondenza e $ partizione_column è stata mostrata in questa sezione di questo tutorial. 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: sostituire tutto dopo la partita usando $ partition_column

Il seguente comando cercherà al personaggio "A" e la parte rimanente dopo "A" sarà sostituita dal testo, "un popolare blog di blog". $ Partition_column.* viene utilizzato per definire la parte rimanente dopo il personaggio, "a".

$ echo "Linuxhint è un sito Web" | sed "s/a $ partition_column.*/Un sito di blog popolare/"

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


Il seguente modello cercherà la parola 'ragnatela"Nella stringa e sostituire la parte rimanente con il"ragnatela"dal testo,"Un sito di blog popolare"Se la partita esiste e"ragnatela'Non è la parte dell'ultima parola della stringa.

$ echo "Linuxhint è un sito Web" | sed "s/web.* $ Partizione_column.*/Un sito di blog popolare/"

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

Esempio 2: sostituire tutto dopo la corrispondenza usando il pattern

Il comando seguente cercherà la parola 'Bash'A livello globale nella stringa e sostituire tutto con la parola se la parola esiste nella stringa. 'G'è usato qui per la ricerca globale.

$ echo "Mi piace la programmazione bash" | sed "S/Bash.*/Python Script/G "

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

Sostituisci tutto dopo la partita in un file:

Tutto il contenuto di una riga particolare o più righe o le righe rimanenti di un file dopo la corrispondenza possono essere sostituiti usando il 'sed'Comando. Crea un file di testo denominato presenza.TXT con il seguente contenuto per testare gli esempi mostrati in questa sezione.

presenza.TXT

1108885 è presente
Il 199979 è presente
1769994 è assente
1105656 è assente
1455999 è assente

Esempio -3: sostituire tutti i contenuti da una riga di un file dopo la partita

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

$ cat Allendence.TXT
$ sed "S/1769994.*/1586844 è presente/"Presenza.TXT

Verrà visualizzato il seguente output in esecuzione dei comandi. Qui, il numero di ricerca esiste nella terza riga del file e la sostituzione è stata eseguita.

Esempio -4: sostituire tutti i contenuti dalle più righe di un file dopo la partita

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" dal testo "voce non valida" in cui verrà trovato il testo corrispondente.

$ cat presente.TXT
$ sed "s/^110.* $ Partizione_column.*/Voce non valida/"frequenza.TXT

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

Esempio-5: sostituire tutti i contenuti da una riga di un file usando "C" dopo la partita

Il seguente 'sed"Il comando mostra l'uso di"C'Sostituire tutto dopo la partita. Qui, 'C'Indica il cambiamento. Il comando cercherà la parola 'presente"Nel file e sostituire tutto la riga con il testo,"Questa riga viene sostituita'Se la parola esiste in qualsiasi riga del file.

$ cat presente.TXT
$ sed '/presente/c Questa linea viene sostituita'.TXT

La 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 in sostituzione.

Esempio-6: sostituire tutti i contenuti da una riga di un file in base al modello di avvio e fine

A volte è necessario sostituire il testo in base al modello di partenza e finale. Il seguente comando "sed" mostra la strada per definire i modelli di avvio e finale 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 "sostituita" in cui i motivi corrispondono.

$ cat presente.TXT
$ sed -e 's/^110.*assente $/sostituito/g 'frequenza.TXT

La 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 in sostituzione.

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 di abbinamento è discussa in questo tutorial utilizzando vari tipi di motivi nel comando "sed". $ Partition_column, 'c' e '.*'viene utilizzato in questo tutorial per sostituire tutto ciò che è una riga del file in cui esiste il modello di corrispondenza. Gli usi di alcuni personaggi dei modelli di definizione hanno mostrato qui, come '^' e '$'. Esistono molti altri personaggi per definire il modello nell'espressione regolare per scopi di ricerca. Spero che questo tutorial aiuterà il lettore a conoscere le basi della sostituzione di tutto da un file dopo la partita.