Sostituire l'ultima occorrenza del testo in una stringa:
Questa sezione mostra come l'ultima occorrenza del modello di ricerca in una stringa può essere sostituita usando il comando "sed".
Esempio-1: sostituire l'ultima occorrenza di una parola basata sul modello
Il seguente comando "sed" cercherà la parola 'Php' nella stringa e sostituire la parola di ricerca con la parola 'Angularjs' Se la parola esiste nella stringa.
$ echo "java php bash python javascript perl php laravel" |
sed 's/\ (.*\) Php/\ 1angularjs/'
Il seguente output apparirà dopo aver eseguito il comando. Qui, la parola 'Php' esiste due volte nella stringa e l'ultima occorrenza è stata sostituita dalla parola " Angularjs'.
Esempio-2: sostituire l'ultima occorrenza del modello basato su cifre
Il seguente comando "sed" cercherà qualsiasi cifra nella stringa e sostituirà l'ultima cifra con il numero 9.
$ echo "il primo valore di contatore 2. Il secondo valore contante 4 "|
sed 's/\ (.*\) [0-9])*/\ 19/'
Il seguente output apparirà dopo aver eseguito il comando. Qui, la cifra appare due volte nella stringa e l'ultima cifra, 4, è stato sostituito dal numero 9.
Esempio-3: sostituire l'ultima cifra di un numero in base al modello
Il seguente comando "sed" sostituirà l'ultima cifra che esiste nel valore della stringa per valore per doppio zero (0 0).
$ echo "Il prezzo del prodotto è di $ 500."| Sed 's/\ (.*\) [0-9]/\ 100/'
Il seguente output apparirà dopo aver eseguito il comando. Qui, 500 esiste nel valore della stringa. Quindi, secondo il comando di sostituzione, l'ultimo zero di 500 è stato sostituito da due doppi zero e il valore sostituito è 5000.
Esempio-4: sostituire l'ultima occorrenza di una parola con un'altra parola
Il seguente comando "sed" cercherà la parola 'Jun' nella stringa e sostituire l'ultima occorrenza della parola con il valore, 'Maggio'.
$ printf "%s \ n" gennaio febbraio giugno giugno giugno | Tr '\ n' "|
sed 's/\ (.*\) Jun/\ 1may/'| tr "'\ n'
Il seguente output apparirà dopo aver eseguito il comando. Qui, la parola 'Jun' esiste due volte nella stringa e l'ultima occorrenza è stata sostituita dalla parola 'Maggio'.
Sostituire l'ultima occorrenza di un testo in un file:
Crea un file di testo denominato Saldi.TXT con il seguente contenuto per testare il comando "sed" utilizzato in questa parte del tutorial per sostituire l'ultima occorrenza di un testo basato sul modello.
Saldi.TXT
Importo dell'anno meseEsempio-5: sostituire l'ultima occorrenza di una parola con un'altra parola
Il seguente comando "sed" cercherà la parola 'Gennaio'Nel file e sostituire l'ultima occorrenza di questa parola con la parola, 'Luglio'.
$ gatti vendite.TXT
$ sed '$ s/gennaio/luglio/' vendite.TXT
La seguente output apparirà dopo aver eseguito i comandi. La parola 'Gennaio' appare due volte nel file. L'ultima occorrenza che esiste nel 7th La riga del file è stata sostituita dalla parola 'Luglio'Nell'output.
Esempio-6: sostituire l'ultima occorrenza di un numero con un altro numero
'tac' Il comando viene utilizzato per invertire il contenuto del file. 'tac' Il comando viene utilizzato con il comando "sed" nel comando seguente per sostituire l'ultima occorrenza di '2019'Con la parola, '2017'.
$ gatti vendite.TXT
$ tac vendite.txt | Sed '0,/2019/S/2019/2017/' | tac
La seguente output apparirà dopo aver eseguito i comandi. Qui, il valore dell'anno, '2019'appare tre volte nel file. Il primo, 'tac' Il comando ha invertito il contenuto del file e ha inviato l'output in 'Sed' comanda di sostituire il primo verificarsi di '2019' che è l'ultima occorrenza nel valore del file per anno, '2017'. Dopo la sostituzione, l'output è stato inviato al 'tac' comanda di nuovo invertire l'output. In questo modo, l'ultima occorrenza di '2019'è stato sostituito dal valore, '2017'.
Esempio-7: sostituire tutto di una linea in base all'ultima occorrenza di una parola
Il seguente 'Sed' Il comando sostituirà la riga con una scheda (\ t) del testo delimitato in cui la linea inizia con la stringa 'Mar' per l'ultima volta nel file.
$ gatti vendite.TXT
$ tac vendite.txt | sed '0,/^mar.*/s/^mar.*/Luglio \ t \ t2018 \ t $ 400000/ '| tac
La seguente output apparirà dopo aver eseguito i comandi. Due righe nel file iniziano con la stringa, 'Mar', e l'ultima occorrenza di questa stringa appare in 5th linea. Il primo 'tac' Il comando è stato utilizzato per invertire il contenuto del file e ha inviato l'output a 'sed ' comando. 'sed"Il comando ha sostituito la riga con un testo,"Jully 2018 $ 400000'Dove la stringa di ricerca trovata per la prima volta. L'output di il 'sed'Il comando è stato inviato al 'tac' comanda nuovamente di invertire l'output che è il contenuto principale del file.
Conclusione:
Il comando 'sed' può essere utilizzato per sostituire qualsiasi parte di una stringa o una riga del file in diversi modi usando i modelli di espressione regolari. Questo tutorial ha mostrato i modi per sostituire l'ultima occorrenza del testo di ricerca in una stringa o un file utilizzando più comandi "sed". In questo tutorial è stato mostrato come il comando "TAC" può essere usato con il comando "sed" per sostituire l'ultima occorrenza del testo di ricerca. Ma tutti i comandi usati qui genereranno temporaneamente l'output. È necessario utilizzare l'opzione '-i' con il comando 'sed' per modificare il contenuto del file in modo permanente in base al modello.