sed

Come inserire una riga dopo la corrispondenza usando 'sed'?

Come inserire una riga dopo la corrispondenza usando 'sed'?

Uno dei comandi utili e potenti di Linux è il comando "sed". Questo comando viene utilizzato per eseguire diversi tipi di attività in Linux, come inserire, aggiornare ed eliminare un particolare testo o riga in base alla corrispondenza. Puoi inserire un testo in una stringa o in un file in modi diversi utilizzando il comando "sed".

Come inserire una riga dopo aver trovato una corrispondenza in una stringa o in una riga è mostrato in questo tutorial.

Inserisci una riga nella stringa

È possibile inserire una nuova riga dopo qualsiasi valore stringa utilizzando il comando "sed" se il modello definito nel comando corrisponde a qualsiasi parte del valore stringa.

L'esempio seguente mostra come è possibile aggiungere una nuova riga dopo un valore stringa se una particolare stringa esiste in un punto qualsiasi del valore stringa string.

Esempio 1: inserire una riga in una stringa dopo aver trovato una corrispondenza

Il seguente comando cercherà "inng" nella stringa, "Mi piace programmare" e una riga di testo, "Ti piace programmare?” verrà inserito dopo la stringa se la stringa di ricerca esiste.

Qui, il carattere "&" viene utilizzato per inserire la riga dopo la stringa.

$ echo "Mi piace programmare." | sed 's/inng/& Ti piace programmare??/'

Il seguente output mostra che "inng" non esiste nella stringa e non viene inserita alcuna riga dopo la stringa.


Il seguente comando cercherà "ing.” nella stringa, “Mi piace programmare” ed esiste nella stringa.

$ echo "Mi piace programmare." | sed 's/ing./& Ti piace programmare??/'

Il seguente output mostra che la nuova riga viene aggiunta dopo la stringa.

Inserisci una riga in un file

Esistono due modi per inserire una riga dopo che è stata trovata una corrispondenza in un file menzionato di seguito. Quando il comando "sed" viene utilizzato senza l'opzione "-i", il contenuto del file rimarrà invariato e l'output mostrerà il contenuto del file con la nuova riga inserita. Devi usare l'opzione "-i" con il comando "sed" per inserire la nuova riga in modo permanente nel file se il modello corrispondente esiste nel file.

UN. Utilizzo di "a" nel comando "sed"

La "a" può essere utilizzata nel modello di ricerca del "sed" per aggiungere una o più righe in un file dopo la riga in cui il modello di ricerca corrisponde o dopo un determinato numero di riga.

B. Utilizzo di "i" nel comando "sed"

La "i" può essere utilizzata nel modello di ricerca del comando "sed" per inserire una o più righe in un file prima della riga in cui il modello di ricerca corrisponde.

Inserisci le righe in un file in base al modello:

Crea un file di testo delimitato da tabulazioni chiamato prodotti.TXT con il seguente contenuto per mostrare gli usi del flag di cui sopra nel comando "sed".

prodotti.TXT

ID        Nome
01        Panna da montare
02        Cacao in polvere
03        Zucchero
04        Uovo
05        Farina

Esempio 2: inserire una riga dopo un determinato numero di riga utilizzando la "a"

I seguenti comandi mostrano come è possibile aggiungere una nuova riga, dopo un determinato numero di riga dei prodotti.txt, in base al modello utilizzato nel comando "sed".

Qui, il primo comando mostrerà il contenuto esistente del file. Il comando "sed" aggiungerà il testo, "b01 Baking powder", dopo le prime due righe del file. L'ultimo comando viene utilizzato per verificare che il contenuto del file sia cambiato o meno.

$ prodotti per gatti.TXT
$ sed '2 a b01\tProdotti per lievito in polvere'.TXT
$ prodotti per gatti.TXT

Il seguente output apparirà dopo aver eseguito il comando sopra.

Esempio 3: inserire una riga dopo l'ultima riga utilizzando la "a"

Il comando seguente mostra come aggiungere una nuova riga dopo l'ultima riga del file. Il primo e l'ultimo comando mostrano il contenuto esistente del file prima e dopo l'esecuzione del comando "sed". Il simbolo "$" viene utilizzato nel modello del comando "sed" per menzionare l'ultima riga del file.

$ prodotti per gatti.TXT
$ sed '$ a b01\tProdotti per lievito in polvere'.TXT
$ prodotti per gatti.TXT

Il seguente output apparirà dopo aver eseguito il comando sopra.

Esempio-4: inserire una riga in qualsiasi punto del file dopo aver abbinato un modello utilizzando la "a"

Il seguente comando "sed" mostra come è possibile aggiungere una nuova riga in qualsiasi punto del file in base al modello corrispondente. Il modello utilizzato nel comando "sed" cercherà qualsiasi riga che inizia con "s01" e aggiungerà la nuova stringa dopo di essa. La quarta riga del file inizia con "s01" e la nuova riga verrà inserita dopo quella riga.

$ prodotti per gatti.TXT
$ sed '/^s01.*/a b01\tProdotti per lievito in polvere.TXT
$ prodotti per gatti.TXT

Il seguente output apparirà dopo aver eseguito il comando.


Il seguente comando "sed" cercherà qualsiasi riga che termina con "Polvere" e inserirà la nuova riga dopo di essa. La terza riga del file termina con "Powder". Quindi, la nuova riga verrà inserita dopo quella riga.

$ prodotti per gatti.TXT
$ sed '/Powder$/a b01\tBaking Powder' prodotti.TXT
$ prodotti per gatti.TXT

Il seguente output apparirà dopo aver eseguito i comandi sopra.

Esempio-5: inserire più righe dopo il motivo corrispondente utilizzando "a"

Il seguente comando "sed" mostra come aggiungere più righe all'interno del contenuto di un file in base al modello corrispondente.

Qui, verranno aggiunte due righe dopo la terza riga, secondo lo schema.

$ prodotti per gatti.TXT
$ sed '/^[a-c]/a b01\tBaking Powder\nb02\tBaking Soda' prodotti.TXT
$ prodotti per gatti.TXT

Il seguente output apparirà dopo aver eseguito i comandi sopra.

Esempio 6: inserire una linea dopo aver abbinato un motivo utilizzando la "I"

$ prodotti per gatti.TXT
$ sed '/cream/i b01\tBaking Powder' prodotti.TXT
$ prodotti per gatti.TXT

Il seguente output apparirà dopo aver eseguito i comandi sopra.

Esempio-7: inserire una linea in modo permanente dopo il modello corrispondente utilizzando l'opzione "-i"

Il seguente comando "sed" mostra come modificare il contenuto del file in modo permanente. L'opzione "i" viene utilizzata con il comando "sed" per inserire una nuova riga nel file in base al modello.

$ prodotti per gatti.TXT
$ sed -i '/e$/a g01\tGhee' prodotti.TXT
$ prodotti per gatti.TXT

Il seguente output apparirà dopo aver eseguito i comandi sopra.

Conclusione:

In questo tutorial sono state mostrate le modalità di inserimento di due o più righe in un file utilizzando il comando “sed” con pattern per aiutare il lettore ad applicare questo comando per inserire temporaneamente o permanentemente delle righe in base al pattern.

Le migliori distribuzioni Linux per il gioco nel 2021
Il sistema operativo Linux ha fatto molta strada dal suo aspetto originale, semplice e basato su server. Questo sistema operativo è notevolmente migli...
Come acquisire e riprodurre in streaming la tua sessione di gioco su Linux
In passato, giocare era considerato solo un hobby, ma con il tempo l'industria dei giochi ha visto una crescita enorme in termini di tecnologia e nume...
I migliori giochi da giocare con il tracciamento delle mani
Oculus Quest ha recentemente introdotto la grande idea del tracciamento manuale senza controller. Con un numero sempre crescente di giochi e attività ...