GNU/Linux >> Linux Esercitazione >  >> Linux

Tutorial Unix Sed:come scrivere su un file usando Sed

Questo articolo fa parte della serie Unix Sed Tutorial. Negli articoli precedenti, abbiamo discusso di sed print operation , sed delete operation e sed find and replace.

In questo articolo, esaminiamo come estrarre parte di un file e scriverlo in un altro file utilizzando sed.

Sed fornisce il comando "w" per scrivere i dati dello spazio del modello in un nuovo file.

Sed crea o tronca il nome del file specificato prima di leggere la prima riga di input e scrive tutte le corrispondenze in un file senza chiudere e riaprire il file.

Syntax: 

#sed 'ADDERSSw outputfile' inputfilename

#sed '/PATTERN/w outputfile' inputfilename

Sed legge una riga e la inserisce in un pattern buffer e scrive il pattern buffer nel file di output specificato secondo i comandi forniti.

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.

Esaminiamo alcuni esempi di comando di scrittura in sed.

1. Scrivi la prima riga del file

In questo esempio, 1 (indirizzo) fa riferimento alla prima riga dell'input e w scrive il pattern buffer nel file di output “output.txt”

$ sed -n '1w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.

2. Scrivi la prima e l'ultima riga del file

In questo esempio, 1 e $ si riferiscono rispettivamente alla prima e all'ultima riga.

$ sed -n -e '1w output.txt' -e '$w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.
10.Windows- Sysadmin, reboot etc.

3. Scrivi le righe che corrispondono al pattern Storage o Sysadmin

In questo esempio il comando sed scrive le righe che corrispondono al pattern “Storage” o “Sysadmin”.

$ sed -n -e '/Storage/w output.txt' -e '/Sysadmin/w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.
5. Storage
10.Windows- Sysadmin, reboot etc.

4. Scrivi le righe da cui il modello corrisponde fino alla fine del file

In questo esempio, /Storage/,$ rappresenta le corrispondenze di riga da Storage alla fine del file.

$ sed -n '/Storage/,$w output.txt' thegeekstuff.txt

$ cat output.txt
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.

5. Scrivi le righe che corrispondono al modello e le due righe successive della corrispondenza

In questo esempio, il comando send scrive le corrispondenze di riga per "Storage" e due righe accanto.

$ sed -n '/Storage/,+2w output.txt' thegeekstuff.txt

$ cat output.txt
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)

Linux
  1. Come sostituire una stringa in un file?

  2. Tutorial Unix Sed:come eseguire più comandi Sed

  3. Come acquisire l'output del comando Unix Top in un file in formato leggibile

  4. Come scrivo stderr su un file mentre uso tee con una pipe?

  5. Come rimuovere un file senza usare rm?

Come convertire un file Windows in un file UNIX

Procedura:un'introduzione all'uso di Git

Esercitazione Unix Sed:stampa di righe di file utilizzando l'indirizzo e i modelli

Tutorial Unix Sed:trova e sostituisci testo all'interno di un file usando RegEx

Esercitazione Unix Sed:Elimina le righe di file utilizzando l'indirizzo e i modelli

Tutorial Unix Sed:operazione su file multilinea con 6 esempi pratici