Domanda: È possibile per me combinare più comandi sed? Posso combinare due comandi sed ed eseguirlo come un singolo comando sed?
Risposta: Nei nostri articoli precedenti abbiamo imparato sed con comandi singoli:stampa, eliminazione, sostituzione e scrittura di file.
In questo articolo esaminiamo come combinare più comandi sed usando l'opzione -e come mostrato di seguito.
Syntax: #sed -e 'command' -e 'command' filename
Nota: -e l'opzione è facoltativa per sed con un singolo comando. sed eseguirà ogni serie di comandi durante l'elaborazione dell'input dal pattern buffer.
Per prima cosa creiamo il file geekstuff.txt che verrà utilizzato in tutti gli esempi menzionati di seguito.
# cat thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 2. Databases - Oracle, mySQL etc. 3. Hardware 4. Security (Firewall, Network, Online Security etc) 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development 10.Windows- Sysadmin, reboot etc.
1.Cancella la 4a e la 2a riga dall'input
Questo esempio sed elimina la 4a e la 2a riga dal file thegeekstuff.txt. Usando l'opzione "-e", puoi dare un numero qualsiasi di comandi con sed.
$ sed -e '4d' -e '2d' thegeekstuff.txt 1. Linux - Sysadmin, Scripting etc. 3. Hardware 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development 10.Windows- Sysadmin, reboot etc.
2. Stampa le linee che corrispondono al modello1 e le linee corrispondono al modello2
Questo esempio sed stampa tutte le linee che corrispondono al modello "Storage" o "Software".
$ sed -n -e '/Software/p' -e '/Storage/p' thegeekstuff.txt 5. Storage 9. Software Development
3. Elimina la prima, l'ultima e tutte le righe vuote dall'input
Questo esempio sed elimina la prima riga, l'ultima riga e tutte le righe vuote dal file di input.
$ sed -e '1d' -e '$d' -e '/^$/d' thegeekstuff.txt 2. Databases - Oracle, mySQL etc. 3. Hardware 4. Security (Firewall, Network, Online Security etc) 5. Storage 6. Cool gadgets and websites 7. Productivity (Too many technologies to explore, not much time available) 8. Website Design 9. Software Development