GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel Unix Sed :comment écrire dans un fichier à l'aide de Sed

Cet article fait partie de la série Unix Sed Tutorial. Dans les articles précédents, nous avons discuté de l'opération d'impression sed, de l'opération de suppression sed et de la recherche et du remplacement sed.

Dans cet article, voyons comment extraire une partie d'un fichier et l'écrire dans un autre fichier à l'aide de sed.

Sed fournit la commande "w" pour écrire les données de l'espace de motif dans un nouveau fichier.

Sed crée ou tronque le nom de fichier donné avant de lire la première ligne d'entrée et écrit toutes les correspondances dans un fichier sans fermer ni rouvrir le fichier.

Syntax: 

#sed 'ADDERSSw outputfile' inputfilename

#sed '/PATTERN/w outputfile' inputfilename

Sed lit une ligne et la place dans un tampon de modèle et écrit le tampon de modèle dans le fichier de sortie donné en fonction des commandes fournies.

Créons d'abord le fichier geekstuff.txt qui sera utilisé dans tous les exemples mentionnés ci-dessous.

# 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.

Passons en revue quelques exemples de commande d'écriture dans sed.

1. Écrivez la 1ère ligne du fichier

Dans cet exemple, 1 (adresse) fait référence à la première ligne de l'entrée et w écrit le tampon de modèle dans le fichier de sortie "output.txt"

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

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

2. Écrivez la première et la dernière ligne du fichier

Dans cet exemple, 1 et $ font respectivement référence à la première et à la dernière ligne.

$ 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. Écrivez les correspondances de lignes avec le modèle Storage ou Sysadmin

Dans cet exemple, la commande sed écrit les lignes qui correspondent au modèle "Storage" ou "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. Écrivez les lignes à partir desquelles le motif correspond jusqu'à la fin du fichier

Dans cet exemple, /Storage/,$ représente les correspondances de ligne de Storage à la fin du fichier.

$ 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. Écrivez les lignes qui correspondent au motif et les deux lignes suivantes à partir de la correspondance

Dans cet exemple, la commande send écrit les correspondances de ligne pour "Storage" et deux lignes à côté.

$ 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. Comment remplacer une chaîne dans un ou plusieurs fichiers ?

  2. Comment supprimer plusieurs lignes aléatoires d'un fichier texte à l'aide de Sed ?

  3. Tutoriel Unix Sed :comment exécuter plusieurs commandes Sed

  4. Comment capturer la sortie de la commande supérieure Unix dans un fichier au format lisible

  5. Comment ajouter au fichier en C, en utilisant Open in O_APPEND Mode sous Linux ?

Comment convertir un fichier Windows en un fichier UNIX

Comment :une introduction à l'utilisation de Git

Tutoriel Unix Sed :Impression de lignes de fichier à l'aide d'adresses et de modèles

Tutoriel Unix Sed :Rechercher et remplacer du texte dans un fichier à l'aide de RegEx

Tutoriel Unix Sed :Supprimer des lignes de fichier à l'aide d'adresses et de modèles

Tutoriel Unix Sed :Opération de fichiers multilignes avec 6 exemples pratiques