Éditeur de flux (SED) : bases

WBOY
Libérer: 2024-03-20 15:11:22
avant
389 Les gens l'ont consulté

Éditeur de flux (SED) : bases

SED, également connu sous le nom de Stream Editor, est un outil très utile. Il est utilisé pour rechercher un mot ou un modèle spécifique, puis effectuer une opération sur ce mot ou ce modèle, ou en d'autres termes, le transformer. Sous Windows, SED est également connu sous le nom de fonction Rechercher et remplacer. SED est fourni nativement avec Ubuntu, il n'y a donc rien à installer ; Dans ce tutoriel, nous allons vous montrer comment utiliser SED ou Stream Editor.

Commandant "S"

La commande la plus importante dans SED ou éditeur de flux est la commande "s". Le « s » signifie substitut. La syntaxe est la suivante :

/regexp/remplacement/drapeau

Utilisons donc un fichier appelé « file.txt » comme exemple. Voici à quoi ressemble "file.txt" si vous le suivez :


Utilisons un exemple pour illustrer le fonctionnement de la commande « S » :

SED‘S/First/Moon/I’file.txt>moon.txt

Quand une expression comme celle-ci est donnée, cela signifie :

    • S—Cela signifie Substitut.
    • premier — mot à rechercher dans un fichier nommé "file.txt".
    • "Lune" - "Premier" est remplacé par "Lune".
    • signifie ignorer. Ignorons cette partie pour l'instant.
    • File.txt - Un fichier dans lequel SED recherchera des modèles ou des mots. Dans ce cas, le mot « Premier » serait :
    • Recherché dans le fichier.txt

    • Moon.txt – Lorsque le mot « first » est remplacé par « Moon », il sera enregistré sous « moon.txt ».

Dans SED, remplacez le mot « premier » par « lune » uniquement dans la première instance (ce qui signifie que si « premier » apparaît plusieurs fois, seule la première fois sera remplacée). Cette commande recherche dans un fichier nommé "file.txt" et une fois le remplacement terminé, les résultats seront enregistrés dans le fichier "moon.txt".

Voici à quoi ça ressemble :


N'oubliez pas de mettre "/" là où c'est nécessaire. Si "/" est omis, SED n'acceptera pas la commande.

Jusqu'à présent, nous avons seulement remplacé « première fois » par le mot « rencontre ». Maintenant, disons que nous voulons remplacer le mot « ligne » (qui apparaît plusieurs fois – quatre fois, pour être précis) dans la troisième ligne par le mot « Ange ».

Comment cibler spécifiquement la troisième ligne ? Nous utilisons la commande suivante :

SED‘3S/Line/Angel/I’file.txt>angel.txt

Alors, que s'est-il passé ici ? D'accord, "3" spécifie le numéro de ligne. Nous arrivons donc à la troisième ligne. Ensuite, remplacez « angel.txt » par « line » dans le fichier nommé « file.txt » et enregistrez le fichier converti sous « angel.txt ».


Et si nous voulons remplacer ou convertir les lignes « 3 » et « 4 » ?

Sed‘3,4s/line/Angel/I’file.txt>angel2.txt


Notez que dans l'exemple précédent, nous avons utilisé le drapeau "i" pour représenter ignorer. Maintenant, nous utilisons le drapeau "g" pour représenter global.

Utilisons un exemple pour illustrer le fonctionnement de la commande « s » :

sed's/line/sun/g 'file.txt>

Quand une expression comme celle-ci est donnée, cela signifie :

G signifie mondial. Rappelez-vous, dans le premier exemple, lorsque nous utilisions le drapeau "i", il n'y avait qu'une seule substitution. Puisque nous avons ajouté un « g » à global, cela signifie qu’il existe des alternatives partout. Ainsi, au lieu de dire première rangée, deuxième rangée, troisième rangée et dernière rangée, il est écrit premier soleil, deuxième soleil, troisième soleil et dernier soleil. Il remplace les lignes de mots (partout) dans tout le fichier par le mot « soleil ».

Maintenant, que se passe-t-il si nous voulons sélectionner une ligne en fonction des mots qu'elle contient ? Eh bien, nous pouvons voir que la dernière ligne de "file.txt" contient le mot "last". Maintenant, disons que nous voulons "C'est la dernière ligne". C'est le dernier mot." "C'est le dernier fantôme. C'est le dernier mot."

Nous écrivons ainsi :

Sed'/last/S/line/host/'file.txt>.ghost.txt

Le "dernier" ici indique à SED de trouver la ligne contenant le mot "dernier", puis de remplacer le mot "ligne" par "fantôme" dans cette ligne.

Maintenant, disons que nous voulons faire le contraire. Supposons que nous souhaitions que chaque ligne sans le mot «dernière» ait le mot «ligne» remplacé par «hôte». Écrivons ce qui suit :

Veuillez sélectionner « /dernier/! S/line/ghost/’file.txt>.ghost2.txt

Comme vous pouvez le voir ici, chaque ligne sauf la dernière ligne (qui contient le mot « dernier ») a le mot « fantôme » remplacé par le mot « ligne ».

Nous pouvons également le faire en utilisant les numéros de ligne :

Sed‘3,4 ! S/行/夜/I'file.txt>night.txt

Dans ce cas, les lignes 3 et 4 sont omises, mais une ligne sur deux a le mot « ligne » remplacé par le mot « nuit ».

Commandes multiples

Et si vous avez plusieurs commandes ? Préféreriez-vous les faire un à la fois ou tous en même temps pour gagner du temps et du travail ?

Que devons-nous faire si nous voulons changer le mot « premier » en « jour », le mot « deuxième » en « nuit » et le mot « repos » en « fantôme » ? Nous faisons cela en utilisant des points-virgules. N'oubliez pas de mettre le point-virgule à la fin !

Veuillez noter que vous n'êtes pas obligé de mettre le signe « i » ou le signe « ignorer », mais vous devez mettre la barre oblique (/) après la phrase de conversion.

Maintenant, vérifions-le avec un exemple :

sed's/first/day/;s/second/night/;s/third/ghost/;s/last/ghost/;'file.txt>

Conclusion

Un Stream Editor ou SED est un moyen de sélectionner des mots ou des modèles et de les transformer. Il s'agit en fait de l'équivalent en ligne de commande des fonctions "Rechercher" et "Remplacer" de Windows. Les commandes SED peuvent devenir très complexes, mais si vous connaissez au moins les bases, vous êtes prêt ! SED est en fait un outil très puissant. Bien que nous ne puissions pas tous les couvrir dans un seul didacticiel, nous couvrons les bases de SED. Essentiellement, nous avons appris à convertir un mot spécifique à l'aide de la commande "s", où "s" représente un mot de remplacement. Nous pouvons remplacer des mots par d’autres mots, sélectionner sélectivement une ligne à remplacer ou même l’annuler. Quoi qu’il en soit, c’est la partie la plus simple de SED.

Bon codage !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:mryunwei.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!