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 linea in base alla partita. È possibile inserire un testo in una stringa o in un file in diversi modi usando il comando "sed".
Come inserire una riga dopo aver trovato una corrispondenza in una stringa o una riga è mostrato in questo tutorial.
Inserire una riga nella stringa
Una nuova riga può essere inserita dopo qualsiasi valore di stringa utilizzando il comando "SED" se il modello definito nel comando corrisponde a qualsiasi parte del valore della stringa.
L'esempio seguente mostra come una nuova riga può essere aggiunta dopo un valore stringa se esiste una stringa particolare ovunque nel valore della stringa.
Esempio-1: inserire una riga in una stringa dopo aver trovato una corrispondenza
Il seguente comando cercherà "Inng" nella stringa, "Mi piace la programmazione" e una riga di testo, "Ti piace la programmazione?"Verrà inserito dopo la stringa se esiste la stringa di ricerca.
Qui, il carattere "&" viene utilizzato per inserire la linea dopo la stringa.
$ echo "Mi piace la programmazione."| Sed 'S/Inng/& Ti piace la programmazione?/'
Il seguente output mostra che "Inng" non esiste nella stringa e nessuna linea viene inserita dopo la stringa.
Il seguente comando cercherà “ing."Nella stringa," mi piace la programmazione "ed esiste nella stringa.
$ echo "Mi piace la programmazione."| Sed 's/ing./& Ti piace la programmazione?/'
Il seguente output mostra che la nuova riga viene aggiunta dopo la stringa.
Inserire una riga in un file
Esistono due modi per inserire una riga dopo che una corrispondenza è stata trovata 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 linea inserita. È necessario utilizzare l'opzione "-i" con il comando "sed" per inserire la nuova riga permanentemente nel file se il modello di corrispondenza esiste nel file.
UN. Usando "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 particolare numero di riga.
B. Usando "i" nel comando "sed"
"I" può essere utilizzato 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 scheda denominato prodotti.TXT con il seguente contenuto per mostrare gli usi del flag sopra nel comando "sed".
prodotti.TXT
Nome IDEsempio-2: inserire una riga dopo un particolare numero di riga usando la "A"
I seguenti comandi mostrano come è possibile aggiungere una nuova riga, dopo un particolare numero di riga dei prodotti.file txt, basato sul modello utilizzato nel comando "sed".
Qui, il primo comando mostrerà il contenuto esistente del file. Il comando "SED" aggiungerà il testo, "B01 Calking Powder", dopo le prime due righe del file. L'ultimo comando viene utilizzato per verificare che il contenuto del file venga modificato o meno.
Prodotti da $ Cat.TXT
$ sed '2 a b01 \ tbaking in polvere ".TXT
Prodotti da $ Cat.TXT
Il seguente output apparirà dopo aver eseguito il comando sopra.
Esempio-3: inserire una riga dopo l'ultima riga usando la "A"
Il seguente comando mostra il modo di aggiungere una nuova riga dopo l'ultima riga del file. Il primo e ultimo comando mostra 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 da $ Cat.TXT
$ sed '$ a b01 \ tbaking in polvere ".TXT
Prodotti da $ Cat.TXT
Il seguente output apparirà dopo aver eseguito il comando sopra.
Esempio-4: inserire una riga ovunque nel file dopo aver abbinato uno schema usando la "A"
Il seguente comando "sed" mostra come una nuova riga può essere aggiunta ovunque nel file in base al modello di corrispondenza. Il modello utilizzato nel comando "SED" cercherà qualsiasi riga a partire da "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 linea.
Prodotti da $ Cat.TXT
$ sed '/^s01.*/A B01 \ TBaking Powder 'Products.TXT
Prodotti da $ Cat.TXT
Il seguente output apparirà dopo aver eseguito il comando.
Il seguente comando "sed" cercherà qualsiasi riga che termina con "polvere" e inserisce la nuova riga dopo di essa. La terza riga del file termina con "polvere". Quindi, la nuova linea verrà inserita dopo quella linea.
Prodotti da $ Cat.TXT
$ sed '/polvere $/a B01 \ TBaking Powder ".TXT
Prodotti da $ Cat.TXT
La seguente output apparirà dopo aver eseguito i comandi sopra.
Esempio-5: inserire più righe dopo il modello di abbinamento usando "A"
Il seguente comando "SED" mostra il modo di aggiungere più righe all'interno del contenuto di un file in base al modello di corrispondenza.
Qui, due righe verranno aggiunte dopo la terza riga, secondo il modello.
Prodotti da $ Cat.TXT
$ sed '/^[a-c]/a b01 \ tbaking polvere \ nb02 \ tbaking soda' Products.TXT
Prodotti da $ Cat.TXT
La seguente output apparirà dopo aver eseguito i comandi sopra.
Esempio-6: inserire una riga dopo aver abbinato uno schema usando "I"
Prodotti da $ Cat.TXT
$ sed '/crema/i b01 \ tbaking in polvere ".TXT
Prodotti da $ Cat.TXT
La seguente output apparirà dopo aver eseguito i comandi sopra.
Esempio-7: inserire una riga permanentemente dopo il modello di corrispondenza usando l'opzione "-i"
Il seguente comando "sed" mostra come modificare in modo permanente il contenuto del file. L'opzione "I" viene utilizzata con il comando "SED" per inserire una nuova riga nel file in base al modello.
Prodotti da $ Cat.TXT
$ sed -i '/e $/a g01 \ tghee'.TXT
Prodotti da $ Cat.TXT
La seguente output apparirà dopo aver eseguito i comandi sopra.
Conclusione:
In questo tutorial sono stati mostrati i modi per inserire due o più righe in un file utilizzando il comando "sed" con pattern per aiutare il lettore ad applicare questo comando per inserire le righe in temporaneamente o permanentemente in base al modello.