GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Utilisez la commande SED pour rechercher et remplacer la chaîne dans les fichiers - Comment effectuer cette tâche sur Ubuntu ?

Le sed signifie éditeur de flux. Il lit le fichier donné, modifiant l'entrée comme spécifié par une liste de commandes sed.

Par défaut, l'entrée est écrite à l'écran, mais vous pouvez forcer la mise à jour du fichier.

La commande Linux Sed (Stream EDitor) est utilisée pour rechercher, trouver et remplacer, ou insérer et supprimer des mots et des lignes dans un fichier texte.

Le cas d'utilisation le plus courant de la commande Sed consiste à rechercher et à remplacer des chaînes dans des fichiers. Lorsque vous utilisez la commande Sed, vous pouvez modifier des fichiers sans les ouvrir.

Chez LinuxAPT, dans le cadre de nos services de gestion de serveur, nous aidons régulièrement nos clients à effectuer des requêtes liées aux serveurs Linux.

Dans ce contexte, nous verrons comment utiliser la commande Sed pour rechercher et remplacer des chaînes dans des fichiers du système Ubuntu 20.04.


Rechercher et remplacer sur Ubuntu

Par défaut, Sed est installé dans la plupart des distributions Linux. Vous pouvez vérifier l'installation de Sed sur votre système Linux en exécutant :

$ sed --v

La syntaxe de base de l'utilisation de la commande Sed pour rechercher et remplacer du texte est :

$ sed -i 's/Search_pattern/Replacement_pattern/g' FILE

Où :

-i :cette option permet à la commande Sed d'éditer les fichiers sur place au lieu d'écrire la sortie sur la sortie standard.

s :il signifie substitut.

/ / :Caractères délimiteurs.

g :Il s'agit d'un indicateur de remplacement global.

FICHIER :Le fichier que vous souhaitez manipuler par la commande Sed.


Il est fortement recommandé de mettre le modèle de recherche, le modèle de remplacement et les autres arguments entre guillemets.

Par exemple, voici un fichier texte utilisé pour la démonstration :

567 Test test test
test /bin/zsh linuxapt.com testbar 789

Pour remplacer tous les mots 'test' par des mots 'linux', exécutez la commande suivante :

$ sed -i 's/test/linux/g' test.txt

Si vous n'utilisez pas l'indicateur g, seule la première occurrence du motif de recherche dans chaque ligne est remplacée :

$ sed -i 's/test/linux/' test.txt

Pour rendre le modèle de recherche insensible à la casse, utilisons le drapeau I :

$ sed -i 's/test/linux/gI' test.txt

Dans le monde Linux, nous rencontrerons de nombreux cas d'utilisation qui ont les caractères de délimitation dans les fichiers texte.

Nous devons utiliser la barre oblique inverse \ pour séparer les caractères délimiteurs.

Par exemple, pour remplacer /bin/zsh par /usr/bin/bash, exécutez :

$ sed -i 's/\/bin\/zsh/\/usr\/bin\/bash/g' test.txt


Recherche et remplacement récursifs

Dans de nombreux cas, vous souhaitez rechercher de manière récursive dans des répertoires des fichiers contenant une chaîne spécifique et remplacer cette chaîne dans tous les fichiers.

Par exemple, la commande suivante recherchera et remplacera la chaîne 'apt' par 'road' dans tous les fichiers du répertoire courant.

$ find . -type f -exec sed -i 's/apt/road/g' {} +

Si les noms de fichiers contiennent des espaces, utilisons l'option -print0 :

$ find . -type f -print0 | xargs -0 sed -i 's/way/road/g'

Pour rechercher et remplacer une chaîne uniquement sur des fichiers ayant une extension spécifique, exécutez :

$ find . -type f -name "*.java" -print0 | xargs -0 sed -i 's/apt/road/g'



Ubuntu
  1. Comment utiliser la commande d'arrêt de Linux dans Ubuntu 18.04 et CentOS 7

  2. Comment utiliser la commande Grep pour rechercher du texte dans des fichiers

  3. Comment utiliser Sed pour remplacer une chaîne multiligne ?

  4. Comment utiliser la commande string dans Ubuntu

  5. Comment remplacer une chaîne dans plusieurs fichiers en ligne de commande Linux

Comment trouver des fichiers sur la ligne de commande Ubuntu

Comment installer et utiliser PhotoRec pour récupérer des fichiers supprimés dans Ubuntu 20.04

Comment rechercher et supprimer des fichiers en double dans Ubuntu à l'aide de Fdupes

Comment installer et utiliser R sur Ubuntu

Comment installer et utiliser la commande Exa sur Ubuntu 20.04

Comment utiliser Sed pour rechercher et remplacer une chaîne dans un fichier