Il s'agit de la commande edposix qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
ed — éditer le texte
SYNOPSIS
ed [−p un magnifique] [-s] [filet]
DESCRIPTION
Le manuel de formation ed L'utilitaire est un éditeur de texte orienté ligne qui utilise deux modes : commander mode et contribution
mode. En mode commande, les caractères d'entrée doivent être interprétés comme des commandes, et en entrée
ils doivent être interprétés comme du texte. Voir la section DESCRIPTION ÉTENDUE.
Si un opérande est '−', les résultats ne sont pas précisés.
OPTIONS
Le manuel de formation ed l'utilitaire doit être conforme au volume Base Definitions de POSIX.1‐2008, Blog 12.2,
Services Publics Syntaxe Conseils et recommandations, à l'exception de l'utilisation non spécifiée de '−'.
Les options suivantes doivent être prises en charge :
−p un magnifique Utilisez le un magnifique comme chaîne d'invite en mode commande. Par défaut, il y aura
pas de chaîne d'invite.
-s Supprimer l'écriture du nombre d'octets en e, E, ret w commandes et de la '!'
invite après un !commander.
OPÉRANDES
L'opérande suivant doit être pris en charge :
filet Si la filet argument est donné, ed doit simuler un e commande sur le fichier nommé
par le chemin, filet, avant d'accepter les commandes de l'entrée standard.
STDIN
L'entrée standard doit être un fichier texte composé de commandes, comme décrit dans le
section DESCRIPTION ÉTENDUE.
CONTRIBUTION DES DOSSIERS
Les fichiers d'entrée doivent être des fichiers texte.
ENVIRONNEMENT VARIABLES
Les variables d'environnement suivantes doivent affecter l'exécution de ed:
ACCUEIL Déterminez le chemin d'accès du répertoire personnel de l'utilisateur.
LANGUE Fournissez une valeur par défaut pour les variables d'internationalisation qui ne sont pas définies ou
nul. (Voir le volume Définitions de base de POSIX.1‐2008, Blog 8.2,
Internationalisation Variables pour la priorité de l'internationalisation
variables utilisées pour déterminer les valeurs des catégories de paramètres régionaux.)
LC_TOUS S'il est défini sur une valeur de chaîne non vide, remplace les valeurs de tous les autres
variables d'internationalisation.
LC_COLLER
Déterminer les paramètres régionaux pour le comportement des plages, des classes d'équivalence et des
éléments de classement de caractères dans des expressions régulières.
LC_CTYPE Déterminer la localisation pour l'interprétation des séquences d'octets de données de texte
sous forme de caractères (par exemple, des caractères à un octet par opposition aux caractères à plusieurs octets dans
arguments et fichiers d'entrée) et le comportement des classes de caractères dans les
expressions.
LC_MESSAGES
Déterminez les paramètres régionaux qui doivent être utilisés pour affecter le format et le contenu de
messages de diagnostic écrits sur erreur standard et messages informatifs écrits
à la sortie standard.
NLSPATH Déterminer l'emplacement des catalogues de messages pour le traitement des LC_MESSAGES.
ASYNCHRONE ÉVÈNEMENTS
Le manuel de formation ed le service public doit prendre l'action standard pour tous les signaux (voir les ÉVÉNEMENTS ASYNCHRONES
section Blog 1.4, Services Publics Description La valeur par défaut) avec les exceptions suivantes :
SIGINT Le ed l'utilitaire doit interrompre son activité en cours, écrire la chaîne "?\n" à
sortie standard, et retour en mode commande (voir la DESCRIPTION ETENDUE
section).
SIGHUP Si le buffer n'est pas vide et a changé depuis la dernière écriture, le ed utilitaire
tentera d'écrire une copie du tampon dans un fichier. Tout d'abord, le fichier nommé
éd.hup dans le répertoire courant doit être utilisé ; si cela échoue, le fichier nommé
éd.hup dans le répertoire nommé par le ACCUEIL La variable d'environnement doit être utilisée. Dans
en tout cas, le ed l'utilitaire doit se fermer sans écrire le fichier dans le
chemin d'accès mémorisé et sans revenir au mode commande.
SIGQUIT Le ed l'utilitaire doit ignorer cet événement.
SORTIE STD
Diverses commandes d'édition et la fonction d'invite (voir −p) écrire sur la sortie standard, comme
décrit dans la section DESCRIPTION ÉTENDUE.
STDERR
L'erreur standard ne doit être utilisée que pour les messages de diagnostic.
SORTIE DES DOSSIERS
Les fichiers de sortie doivent être des fichiers texte dont les formats dépendent des commandes d'édition
donné.
ÉLARGI DESCRIPTION
Le manuel de formation ed l'utilitaire doit fonctionner sur une copie du fichier qu'il est en train d'éditer ; modifications apportées à la copie
n'aura aucun effet sur le dossier jusqu'à ce qu'un w (écrire) la commande est donnée. La copie du texte
est appelé tampon.
Commandes à ed avoir une structure simple et régulière : zéro, un ou deux adresses suivi
par un seul caractère commander, éventuellement suivi des paramètres de cette commande. Ces
les adresses spécifient une ou plusieurs lignes dans le tampon. Chaque commande qui nécessite des adresses
a des adresses par défaut, de sorte que les adresses peuvent très souvent être omises. Si la −p option
est spécifié, la chaîne d'invite doit être écrite sur la sortie standard avant que chaque commande ne soit
lire.
En général, une seule commande peut apparaître sur une ligne. Certaines commandes permettent au texte d'être
saisir. Ce texte est placé à l'endroit approprié dans le tampon. Tandis que ed accepte
texte, on dit qu'il est dans contribution mode. Dans ce mode, aucune commande ne doit être reconnue ; tous
l'entrée est simplement collectée. Le mode d'entrée est terminé en entrant une ligne composée de deux
caractères : un ('.') suivi d'un . Cette ligne n'est pas considérée comme faisant partie
du texte saisi.
Régulier Expressions in ed
Le manuel de formation ed L'utilitaire doit prendre en charge les expressions régulières de base, comme décrit dans le
Volume des définitions de POSIX.1‐2008, Blog 9.3, Basic Régulier Expressions. Depuis régulier
expressions dans ed sont toujours comparés à des lignes simples (à l'exclusion de la terminaison
caractères), jamais contre une plus grande section de texte, il n'y a aucun moyen pour un
expression régulière pour correspondre à un .
Un RE nul doit être équivalent au dernier RE rencontré.
Les expressions régulières sont utilisées dans les adresses pour spécifier des lignes, et dans certaines commandes (par exemple
par exemple, le s commande de substitution) pour spécifier les portions d'une ligne à substituer.
Adresses in ed
Adressage dans ed se rapporte à la ligne courante. Généralement, la ligne courante est la dernière ligne
affecté par une commande. Le numéro de la ligne courante est l'adresse de la ligne courante. Si la
le tampon d'édition n'est pas vide, la valeur initiale de la ligne actuelle doit être la dernière ligne de
le tampon d'édition ; sinon, zéro.
Les adresses doivent être construites comme suit :
1. Le personnage ('.') doit adresser la ligne courante.
2. Le personnage («$») doit adresser la dernière ligne du tampon d'édition.
3. Le nombre décimal positif n doit s'adresser au nème ligne du tampon d'édition.
4. Le paire de caractères -x ("'X") doit adresser la ligne marquée de la marque
caractère de nom x, qui doit être une lettre minuscule du jeu de caractères portable.
Ce sera une erreur si le caractère n'a pas été défini pour marquer une ligne ou si la ligne
qui a été marqué n'est pas actuellement présent dans le tampon d'édition.
5. Un BRE joint par personnages ('/') doit adresser la première ligne trouvée par
recherche vers l'avant à partir de la ligne suivant la ligne actuelle vers la fin de l'édition
tampon et s'arrêtant à la première ligne pour laquelle la ligne excluant la terminaison
correspond au BRE. Le BRE constitué d'un BRE nul délimité par une paire de
caractères doivent adresser la ligne suivante pour laquelle la ligne excluant le
terminer correspond au dernier BRE rencontré. De plus, le deuxième
peut être omis à la fin d'une ligne de commande. Au sein du BRE, un
- paire ("\/") doit représenter un littéral à la place du BRE
délimiteur. Si nécessaire, la recherche doit revenir au début du tampon
et continuez jusqu'à et y compris la ligne actuelle, de sorte que la mémoire tampon entière soit
cherché.
6. Un BRE joint par personnages ('?') doit adresser la première ligne trouvée
en recherchant en arrière de la ligne précédant la ligne courante vers le début
du tampon d'édition et s'arrêtant à la première ligne pour laquelle la ligne excluant le
terminer correspond au BRE. Le BRE constitué d'un BRE nul délimité par un
une paire de personnages ("???") doit traiter la ligne précédente pour laquelle
la ligne à l'exclusion de la terminaison correspond au dernier BRE rencontré. Dans
en plus, le deuxième peut être omis à la fin d'une ligne de commande.
Au sein du BRE, un - paire ("\?") doit représenter un littéral
au lieu du délimiteur BRE. Si nécessaire, la recherche s'étend
jusqu'à la fin du tampon et continuer jusqu'à et y compris la ligne actuelle, donc
que l'ensemble du tampon est recherché.
7. Un ('+') ou personnage ('−') suivi d'un nombre décimal doit
adresse la ligne courante plus ou moins le numéro. UNE ou personnage
non suivi d'un nombre décimal doit adresser la ligne courante plus ou moins 1.
Les adresses peuvent être suivies de zéro ou plusieurs décalages d'adresses, en option -séparé.
Les décalages d'adresse sont construits comme suit :
* UNE ou caractère suivi d'un nombre décimal doit ajouter ou
soustraire, respectivement, le nombre indiqué de lignes vers ou depuis l'adresse. UNE
signe> ou caractère non suivi d'un nombre décimal doit ajouter ou soustraire 1
vers ou depuis l'adresse.
* Un nombre décimal ajoute le nombre de lignes indiqué à l'adresse.
Le fait qu'une valeur d'adresse intermédiaire soit inférieure ou supérieure à zéro ne doit pas constituer une erreur
que la dernière ligne du tampon d'édition. Ce sera une erreur pour la valeur d'adresse finale à
être inférieur à zéro ou supérieur à la dernière ligne du tampon d'édition. Ce sera une erreur
si la recherche d'un BRE ne parvient pas à trouver une ligne correspondante.
Les commandes acceptent zéro, une ou deux adresses. Si plus que le nombre requis d'adresses
sont fournis à une commande qui nécessite zéro adresse, ce sera une erreur. Autrement,
si plus que le nombre requis d'adresses est fourni à une commande, les adresses
spécifié en premier doit être évalué puis rejeté jusqu'à ce que le nombre maximum de
les adresses restent, pour la commande spécifiée.
Les adresses sont séparées les unes des autres par un (',') ou personnage
(';'). Dans le cas d'un séparateur, la ligne courante ('.') doit être réglé sur
la première adresse, et alors seulement la deuxième adresse sera calculée. Cette fonctionnalité peut
être utilisé pour déterminer la ligne de départ des recherches en avant et en arrière ; voir les règles 5.
et 6.
Les adresses peuvent être omises de chaque côté du ou séparateur, dans lequel
cas, les paires d'adresses résultantes doivent être les suivantes :
??
│Spécifié │ Résultant │
??
, 1 , $
│, adr │ 1 , adr │
│adr , │adr , addr │
; . ; $ │
; adr . ; adresse
addr ; adr ; adresse
??
Tout caractères inclus entre les adresses, les séparateurs d'adresses ou les décalages d'adresses
doit être ignoré.
Commandes in ed
Dans la liste suivante de ed commandes, les adresses par défaut sont indiquées entre parenthèses. Les
Le nombre d'adresses indiqué par défaut sera le nombre attendu par la commande. Les
les parenthèses ne font pas partie de l'adresse ; ils montrent que les adresses données sont les
défaut.
Il est généralement invalide pour plus d'une commande d'apparaître sur une ligne. Cependant, tout
commande (sauf e, E, f, q, Q, r, wet !) peut être suffixé par la lettre l, n, ou p, Dans
quel cas, à l'exception de la l, net p commandes, la commande doit être exécutée puis
la nouvelle ligne courante doit être écrite comme décrit ci-dessous sous la l, net p les commandes.
Lorsqu'un l, n, ou p suffixe est utilisé avec un l, n, ou p commande, la commande doit écrire à
sortie standard comme décrit ci-dessous, mais il n'est pas spécifié si le suffixe écrit le
ligne en cours dans le format demandé ou si le suffixe n'a aucun effet. Pour
par exemple, le pl commande (base p commande avec un l suffixe) doit soit écrire uniquement le
ligne courante ou écrivez-la deux fois—une fois comme spécifié pour p et une fois comme spécifié pour l. En outre,
le g, G, vet V commandes doivent prendre une commande comme paramètre.
Chaque composant d'adresse peut être précédé de zéro ou plus personnages. La commande
la lettre peut être précédée de zéro ou plus personnages. Si une lettre suffixe (l, n, ou p)
est donnée, l'application doit s'assurer qu'elle suit immédiatement la commande.
Le manuel de formation e, E, f, ret w les commandes doivent prendre une option filet paramètre, séparé du
lettre de commande par un ou plusieurs personnages.
Si des modifications ont été apportées au tampon depuis la dernière w commande qui a écrit l'intégralité
tampon, ed avertira l'utilisateur en cas de tentative de destruction du tampon de l'éditeur via le
e or q commandes. le ed l'utilitaire doit écrire la chaîne :
"?\n"
(suivi d'un message explicatif si vous aider mode a été activé via le H commande) à
sortie standard et doit continuer en mode commande avec le numéro de ligne actuel inchangé.
Si la e or q commande est répétée sans aucune commande intermédiaire, elle prendra effet.
Si un terminal se déconnecte (voir le volume Base Definitions de POSIX.1‐2008, Chapitre 11,
Général terminal Interface, Déconnexion du modem et fermeture d'un terminal de périphérique), est détecté :
* S'il est accompagné d'un signal SIGHUP, le ed le service public doit fonctionner comme décrit dans le
Section ÉVÉNEMENTS ASYNCHRONES pour un signal SIGHUP.
* S'il n'est pas accompagné d'un signal SIGHUP, le ed l'utilitaire doit agir comme si une fin de fichier
avait été détecté sur l'entrée standard.
Si une fin de fichier est détectée sur l'entrée standard :
* Si la ed l'utilitaire est en mode saisie, ed doit terminer le mode d'entrée et revenir à
mode de commande. Il n'est pas spécifié si des lignes partiellement saisies (c'est-à-dire du texte saisi
sans terminaison ) sont supprimés du texte saisi.
* Si la ed l'utilitaire est en mode commande, il doit agir comme si un q la commande avait été entrée.
Si le délimiteur de fermeture d'un RE ou d'une chaîne de remplacement (par exemple, '/') dans un g, G,
s, v, ou V commande serait le dernier caractère avant un , ce délimiteur peut être
omis, auquel cas la ligne adressée doit être écrite. Par exemple, ce qui suit
les paires de commandes sont équivalentes :
s/s1/s2 s/s1/s2/p
g/s1 g/s1/p
?s1 ?s1?
Si une commande invalide est entrée, ed doit écrire la chaîne :
"?\n"
(suivi d'un message explicatif si vous aider mode a été activé via le H commande) à
sortie standard et doit continuer en mode commande avec le numéro de ligne actuel inchangé.
Ajouter Command
Synopsis:
(.)une
<texte>
.
Le manuel de formation a la commande doit lire le texte donné et l'ajouter après la ligne adressée ; les
le numéro de ligne actuel deviendra l'adresse de la dernière ligne insérée ou, s'il y avait
aucun, la ligne adressée. L'adresse 0 doit être valide pour cette commande ; il provoquera le
texte ajouté à placer au début du tampon.
Changer Command
Synopsis:
(.,.)c
<texte>
.
Le manuel de formation c commande doit supprimer les lignes adressées, puis accepter le texte d'entrée qui les remplace
lignes; la ligne actuelle doit être définie sur l'adresse de la dernière entrée de ligne ; ou, s'il y a
étaient aucun, à la ligne après la dernière ligne supprimée ; si les lignes supprimées étaient à l'origine
à la fin du tampon, le numéro de la ligne courante doit être mis à l'adresse du nouveau
dernière ligne; s'il ne reste aucune ligne dans la mémoire tampon, le numéro de ligne actuel doit être mis à zéro.
L'adresse 0 doit être valide pour cette commande ; il doit être interprété comme si l'adresse 1 était
spécifié.
Supprimer Command
Synopsis:
(.,.)ré
Le manuel de formation d La commande supprimera les lignes adressées du tampon. L'adresse de la ligne
après la dernière ligne supprimée deviendra le numéro de ligne actuel ; si les lignes supprimées
étaient à l'origine à la fin de la mémoire tampon, le numéro de ligne actuel doit être défini sur le
adresse de la nouvelle dernière ligne; s'il ne reste aucune ligne dans le tampon, le numéro de la ligne actuelle
doit être mis à zéro.
Modifier Command
Synopsis:
e [filet]
Le manuel de formation e La commande doit supprimer tout le contenu du tampon, puis lire dans le fichier
nommé par le chemin filet. Le numéro de la ligne actuelle doit être réglé sur l'adresse du
dernière ligne du tampon. Si aucun nom de chemin n'est donné, le nom de chemin actuellement mémorisé, si
tout, doit être utilisé (voir le f commander). Le nombre d'octets lus doit être écrit dans
sortie standard, à moins que le -s option a été spécifiée, dans le format suivant :
"%d\n", <nombre of octets lire>
Le nom du blog filet doit être mémorisé pour une éventuelle utilisation comme chemin d'accès par défaut dans les e,
E, ret w commandes. Si filet est remplacé par '!', le reste de la ligne doit être pris pour
être une ligne de commande shell dont la sortie doit être lue. Une telle ligne de commande shell ne doit pas être
rappelé comme le courant filet. Toutes les marques doivent être supprimées à la fin d'un
réussi e commander. Si le tampon a changé depuis la dernière fois que le tampon entier a été
écrit, l'utilisateur en sera averti, comme décrit précédemment.
Modifier Sans Vérification Command
Synopsis:
E [filet]
Le manuel de formation E commande doit posséder toutes les propriétés et restrictions du e commande sauf que
l'éditeur ne doit pas vérifier si des modifications ont été apportées au tampon depuis
le dernier w commander.
Nom de fichier Command
Synopsis:
f [filet]
If filet est donné, le f La commande doit changer le chemin d'accès actuellement mémorisé en filet;
que le nom soit modifié ou non, il doit alors écrire le (éventuellement nouveau) actuellement
chemin d'accès mémorisé vers la sortie standard au format suivant :
"%s\n", <chemin d'accès>
Le numéro de ligne actuel ne doit pas être modifié.
Global Command
Synopsis:
(1,$)g/RE/commander liste
Dans l' g commande, la première étape sera de marquer chaque ligne pour laquelle la ligne excluant
la terminaison correspond au RE donné. Ensuite, en partant séquentiellement de la
du début du fichier à la fin du fichier, le commander liste doit être exécuté pour
chaque ligne marquée, avec le numéro de ligne actuel défini sur l'adresse de cette ligne. N'importe quelle ligne
modifié par le commander liste doit être banalisé. Quand le g la commande se termine, le courant
le numéro de ligne doit avoir la valeur attribuée par la dernière commande dans le commander liste. Si
il n'y avait pas de lignes correspondantes, le numéro de ligne actuel ne doit pas être modifié. Un seul
commande ou la première d'une liste de commandes doit apparaître sur la même ligne que la commande globale
commander. Toutes les lignes d'une liste multiligne, à l'exception de la dernière ligne, doivent se terminer par un
précédant la fin ; les a, iet c commandes et associées
les entrées sont autorisées. Les '.' le mode d'entrée de fin peut être omis s'il s'agit du
dernière ligne du commander liste. Un vide commander liste sera équivalent à la p commander.
L'utilisation de la g, G, v, Vet ! commandes dans le commander liste produit des résultats indéfinis.
Tout personnage autre que ou peut être utilisé à la place d'un délimiter
là. Dans le RE, le délimiteur RE lui-même peut être utilisé comme caractère littéral s'il est
précédé d'un .
interactif Global Command
Synopsis:
(1,$)G/RE/
Dans l' G commande, la première étape sera de marquer chaque ligne pour laquelle la ligne excluant
la terminaison correspond au RE donné. Ensuite, pour chaque ligne de ce type, cette ligne doit
être écrit, le numéro de la ligne actuelle doit être mis à l'adresse de cette ligne, et n'importe quel
commande (autre que l'un des a, c, i, g, G, vet V commandes) doit être lu et
réalisé. UNE agira comme une commande nulle (n'entraînant aucune action sur le
ligne actuelle); un '&' provoquera la réexécution de la commande non nulle la plus récente
exécuté dans l'invocation actuelle de G. Notez que les commandes entrées dans le cadre du
exécution de la G La commande peut adresser et affecter toutes les lignes du tampon. N'importe quelle ligne
modifié par la commande ne sera pas marqué. La valeur finale du numéro de ligne actuel
doit être la valeur définie par la dernière commande exécutée avec succès. (Notez que le dernier
la commande exécutée avec succès doit être la G commande elle-même si une commande échoue ou si la valeur null
est spécifiée.) S'il n'y avait pas de lignes correspondantes, le numéro de ligne actuel ne doit pas
être changé. Les G La commande peut être terminée par un signal SIGINT. Tout personnage autre que
ou peut être utilisé à la place d'un délimiter l'ER et la
remplacement. Dans le RE, le délimiteur RE lui-même peut être utilisé comme caractère littéral si
il est précédé d'un .
Aidez Command
Synopsis:
h
Le manuel de formation h La commande doit écrire un court message sur la sortie standard qui explique la raison de
la plus récente '?' notification. Le numéro de ligne actuel ne doit pas être modifié.
Mode d'aide Command
Synopsis:
H
Le manuel de formation H la commande causera ed pour entrer dans un mode dans lequel les messages d'aide (voir le h commande)
doit être écrit sur la sortie standard pour tous les '?' notifications. le H commander
doit alternativement activer et désactiver ce mode ; il est initialement éteint. Si le mode d'aide est
étant allumé, le H La commande explique également la précédente '?' notification, s'il y avait
une. Le numéro de ligne actuel ne doit pas être modifié.
insérer Command
Synopsis:
(.)je
<texte>
.
Le manuel de formation i la commande doit insérer le texte donné avant la ligne adressée ; la ligne actuelle est
mis à la dernière ligne insérée ou, s'il n'y en avait pas, à la ligne adressée. Cette commande
diffère de la a commande uniquement dans le placement du texte d'entrée. L'adresse 0 doit être
valide pour cette commande ; elle doit être interprétée comme si l'adresse 1 était spécifiée.
Rejoignez-nous Command
Synopsis:
(.,.+1)j
Le manuel de formation j commande doit joindre les lignes contiguës en supprimant les
personnages. Si exactement une adresse est donnée, cette commande ne fera rien. Si les lignes sont
joint, le numéro de la ligne actuelle doit être réglé sur l'adresse de la ligne jointe ; autrement,
le numéro de ligne actuel doit être inchangé.
Mark Command
Synopsis:
(.)kx
Le manuel de formation k la commande doit marquer la ligne adressée avec le nom x, que la demande doit
assurez-vous qu'il s'agit d'une lettre minuscule du jeu de caractères portable. L'adresse "'X" doit alors
reportez-vous à cette ligne ; le numéro de ligne actuel doit être inchangé.
Liste Command
Synopsis:
(.,.)l
Le manuel de formation l La commande écrira sur la sortie standard les lignes adressées de manière visuellement sans ambiguïté
former. Les caractères répertoriés dans le volume Base Definitions de POSIX.1‐2008, lampe de table 5-1,
Échapper Séquences et Associé Actions ('\\', '\une', '\b', '\F', '\r', '\t', '\v') doit
être écrit comme la séquence d'échappement correspondante ; les '\n' dans ce tableau n'est pas applicable.
Les caractères non imprimables qui ne figurent pas dans le tableau doivent être écrits sous la forme d'un nombre octal à trois chiffres
(avec un précédent caractère) pour chaque octet du caractère (le plus significatif
octet en premier).
Les longues lignes doivent être pliées, le point de pliage étant indiqué par précédé d'un
; la longueur à laquelle le pliage se produit n'est pas spécifiée, mais devrait être appropriée
pour le périphérique de sortie. La fin de chaque ligne doit être marquée d'un «$»et «$» caractères
dans le texte doit être écrit avec un précédent . Un l la commande peut être
annexé à toute autre commande autre que e, E, f, q, Q, r, w, ou !. La ligne actuelle
numéro doit être mis à l'adresse de la dernière ligne écrite.
Move Command
Synopsis:
(.,.)mpropos
Le manuel de formation m commande doit repositionner les lignes adressées après la ligne adressée par propos.
L'adresse 0 est valable pour propos et provoquer le déplacement des lignes adressées vers le
début du tampon. Ce sera une erreur si l'adresse propos se situe dans la fourchette de
lignes déplacées. Le numéro de la ligne actuelle doit être réglé sur l'adresse de la dernière ligne déplacée.
Numéro Command
Synopsis:
(.,.) n
Le manuel de formation n La commande écrira sur la sortie standard les lignes adressées, précédant chaque ligne de
son numéro de ligne et un ; le numéro de la ligne actuelle doit être réglé sur l'adresse du
dernière ligne écrite. Les n commande peut être ajoutée à n'importe quelle commande autre que e, E, f, q, Q,
r, w, ou !.
Imprimé Command
Synopsis:
(.,.)p
Le manuel de formation p la commande écrira sur la sortie standard les lignes adressées ; le numéro de la ligne actuelle
doit être mis à l'adresse de la dernière ligne écrite. Les p la commande peut être ajoutée à n'importe quel
commande autre que e, E, f, q, Q, r, w, ou !.
Prompt Command
Synopsis:
P
Le manuel de formation P la commande causera ed inviter avec un ('*') (ou un magnifique, Si −p is
spécifié) pour toutes les commandes suivantes. Les P la commande alternativement doit activer ce mode
allumé et éteint; il sera initialement activé si le −p l'option est spécifiée ; sinon, éteint. Les
le numéro de ligne actuel doit rester inchangé.
quitter Command
Synopsis:
q
Le manuel de formation q la commande causera ed pour quitter. Si le tampon a changé depuis la dernière fois que le
tout le tampon a été écrit, l'utilisateur doit être averti, comme décrit précédemment.
quitter Sans Vérification Command
Synopsis:
Q
Le manuel de formation Q la commande causera ed pour quitter sans vérifier si des modifications ont été apportées dans
le tampon depuis le dernier w commander.
Lire Command
Synopsis:
($)r [filet]
Le manuel de formation r la commande doit lire dans le fichier nommé par le chemin filet et l'ajouter après le
ligne adressée. Sinon filet est donné, le chemin d'accès actuellement mémorisé, le cas échéant,
doit être utilisé (voir le e et f commandes). Le chemin d'accès actuellement mémorisé ne doit pas être
changé sauf s'il n'y a pas de chemin d'accès mémorisé. L'adresse 0 est valable pour r et doit
provoque la lecture du fichier au début du tampon. Si la lecture est réussie, et
-s n'a pas été spécifié, le nombre d'octets lus doit être écrit sur la sortie standard dans le
format suivant :
"%d\n", <nombre of octets lire>
Le numéro de la ligne actuelle doit être réglé sur l'adresse de la dernière ligne lue. Si filet is
remplacé par '!', le reste de la ligne doit être considéré comme une ligne de commande shell dont
la sortie doit être lue. Une telle ligne de commande shell ne doit pas être mémorisée comme la
chemin d'accès.
Représentant(e) suppléant(e) Command
Synopsis:
(.,.)s/RE/remplacement/drapeaux
Le manuel de formation s la commande doit rechercher dans chaque ligne adressée une occurrence du RE spécifié et
remplacer la première ou toutes les chaînes correspondantes (non superposées) par le remplacement; voir
la description suivante de la g suffixe. C'est une erreur si la substitution échoue sur
chaque ligne adressée. Tout personnage autre que ou peut être utilisé à la place de
une pour délimiter le RE et le remplacement. Au sein du RE, le délimiteur RE lui-même
peut être utilisé comme caractère littéral s'il est précédé d'un . La ligne actuelle
doit être mis à l'adresse de la dernière ligne sur laquelle une substitution s'est produite.
Un ('&') figurant dans le remplacement doit être remplacé par la chaîne correspondant
le RE sur la ligne courante. Le sens particulier de '&' dans ce contexte peut être supprimé
en le faisant précéder de . De manière plus générale, les personnages '\n', Où n
est un chiffre, doit être remplacé par le texte auquel correspond la référence arrière correspondante
expression. Si l'expression de référence arrière correspondante ne correspond pas, le
caractères '\n' doit être remplacé par la chaîne vide. Quand le personnage '%' est la seule
caractère dans la remplacement, un remplacement utilisé dans la commande de substitution la plus récente
doit être utilisé comme remplacement dans la commande de substitution actuelle ; s'il n'y avait pas
commande de substitution précédente, l'utilisation de '%' de cette manière sera une erreur. Les '%'
perd sa signification particulière lorsqu'il est dans une chaîne de remplacement de plus d'un
caractère ou est précédé d'un . Pour chaque rencontré lors de l'analyse
remplacement du début à la fin, le caractère suivant perd sa signification particulière
(si seulement). Il n'est pas précisé quelle signification spéciale est donnée à tout caractère autre que
, '&', '%', ou des chiffres.
Une ligne peut être divisée en substituant un dans ça. L'application doit garantir qu'il
échappe au dans le remplacement en le faisant précéder de . Tel
la substitution ne peut se faire dans le cadre d'un g or v commander liste. Le numéro de ligne actuel
doit être mis à l'adresse de la dernière ligne sur laquelle une substitution est effectuée. Sinon
substitution est effectuée, le numéro de la ligne actuelle ne doit pas être modifié. Si une ligne est coupée,
une substitution est considérée comme effectuée sur chacune des nouvelles lignes pour la
dans le but de déterminer le nouveau numéro de ligne actuel. Une substitution sera considérée comme
ont été exécutées même si la chaîne de remplacement est identique à la chaîne qu'elle
remplace.
La demande doit garantir que la valeur de drapeaux est égal ou supérieur à zéro :
compter Remplacer le compterème occurrence seulement du RE trouvé sur chaque ligne adressée.
g Remplacer globalement toutes les instances de l'ER qui ne se chevauchent pas plutôt que simplement
le premier. Si les deux g et compter sont spécifiés, les résultats ne sont pas spécifiés.
l Écrivez sur la sortie standard la dernière ligne dans laquelle une substitution a été effectuée. La ligne
doivent être rédigés dans le format spécifié pour le l commander.
n Écrivez sur la sortie standard la dernière ligne dans laquelle une substitution a été effectuée. La ligne
doivent être rédigés dans le format spécifié pour le n commander.
p Écrivez sur la sortie standard la dernière ligne dans laquelle une substitution a été effectuée. La ligne
doivent être rédigés dans le format spécifié pour le p commander.
Copier Command
Synopsis:
(.,.)tpropos
Le manuel de formation t commande doit être équivalente à la m commande, sauf qu'une copie de l'adresse
les lignes doivent être placées après l'adresse propos (qui peut être 0); le numéro de la ligne actuelle
doit être mis à l'adresse de la dernière ligne ajoutée.
annuler Command
Synopsis:
u
Le manuel de formation u commande doit annuler l'effet de la commande la plus récente qui a modifié quoi que ce soit
dans le tampon, à savoir le plus récent a, c, d, g, i, j, m, r, s, t, u, v, G, ou V commander.
Toutes les modifications apportées au tampon par un g, G, v, ou V la commande globale doit être annulée en tant que
changement unique; si aucune modification n'a été apportée par la commande globale (comme avec g/RÉ/p) et de u
commande n'aura aucun effet. Le numéro de ligne actuel doit être mis à la valeur qu'il avait
juste avant le début de la commande en cours d'annulation.
Global Non apparié Command
Synopsis:
(1,$)v/RE/commander liste
Cette commande doit être équivalente à la commande globale g sauf que les lignes qui sont
marqués au cours de la première étape sont ceux pour lesquels la ligne excluant la terminaison
ne correspond pas au RE.
interactif Global Pas adapté Command
Synopsis:
(1,$)V/RE/
Cette commande doit être équivalente à la commande globale interactive G sauf que les lignes
qui sont marqués lors de la première étape sont ceux pour lesquels la ligne excluant le
terminer ne correspond pas au RE.
Écrire Command
Synopsis:
(1,$)w [filet]
Le manuel de formation w La commande doit écrire les lignes adressées dans le fichier nommé par le chemin filet.
La commande crée le fichier, s'il n'existe pas, ou remplace le contenu de
le fichier existant. Le chemin d'accès actuellement mémorisé ne doit pas être modifié à moins qu'il n'y ait
pas de chemin d'accès mémorisé. Si aucun nom de chemin n'est donné, le nom de chemin actuellement mémorisé, si
tout, doit être utilisé (voir le e et f commandes); le numéro de ligne actuel doit être inchangé.
Si la commande réussit, le nombre d'octets écrits doit être écrit en standard
sortie, à moins que le -s option a été spécifiée, dans le format suivant :
"%d\n", <nombre of octets code écrit>
If filet commence par '!', le reste de la ligne doit être considéré comme une ligne de commande shell
dont l'entrée standard sera les lignes adressées. Une telle ligne de commande shell ne doit pas être
mémorisé comme chemin d'accès actuel. Cette utilisation de la commande d'écriture avec '!' ne sera pas
considéré comme un ``dernier w commande qui a écrit l'intégralité du tampon'', comme décrit précédemment ;
ainsi, cela seul n'empêchera pas l'avertissement à l'utilisateur si une tentative est faite pour
détruire le tampon de l'éditeur via le e or q les commandes.
Line Numéro Command
Synopsis:
($)=
Le numéro de ligne de la ligne adressée doit être écrit sur la sortie standard de la manière suivante
Format:
"%d\n", <en ligne nombre>
Le numéro de ligne actuel ne sera pas modifié par cette commande.
coquille Échapper Command
Synopsis:
!commander
Le reste de la ligne après la '!' doit être envoyé à l'interpréteur de commandes pour être
interprété comme une ligne de commande shell. Dans le texte de cette ligne de commande shell, le
caractère non échappé '%' doit être remplacé par le chemin d'accès mémorisé ; si un '!' apparaît
comme premier caractère de la commande, il doit être remplacé par le texte du précédent
commande shell exécutée via '!'. Donc, "!!" doit répéter le précédent !commander. Si seulement
remplacements de '%' or '!' sont effectuées, la ligne modifiée doit être écrite dans le
sortie standard avant commander est exécuté. Les ! la commande doit écrire :
"!\n"
à la sortie standard à la fin, à moins que le -s option est spécifiée. La ligne actuelle
le numéro reste inchangé.
Null Command
Synopsis:
(.+1)
Une adresse seule sur une ligne entraîne l'écriture de la ligne adressée. UNE seul
équivaudra à "+1p". Le numéro de la ligne actuelle doit être réglé sur l'adresse du
ligne écrite.
EXIT STATUT
Les valeurs de sortie suivantes doivent être renvoyées :
0 Achèvement réussi sans aucune erreur de fichier ou de commande.
>0 Une erreur s'est produite.
CONSÉQUENCES OF LES ERREURS
Lorsqu'une erreur dans le script d'entrée est rencontrée, ou lorsqu'une erreur est détectée qui est un
conséquence des données (non) présentes dans le fichier ou en raison d'une condition externe telle que
une erreur de lecture ou d'écriture :
* Si l'entrée standard est un fichier de périphérique de terminal, toutes les entrées doivent être vidées et un nouveau
commande lire.
* Si l'entrée standard est un fichier normal, ed se termine par une sortie non nulle
état.
Le manuel de formation Abonnement les sections sommes-nous informatif.
INSCRIPTION UTILISATION
En raison de la nature extrêmement laconique des messages d'erreur par défaut, le script prudent
l'écrivain commence le ed des commandes d'entrée avec un H commande, de sorte que si des erreurs se produisent à
au moins un indice quant à la cause est disponible.
Dans les versions antérieures de cette norme, un - option a été décrite. C'est non
plus spécifié. Les applications doivent utiliser le -s option. En utilisant - en tant que filet opérande maintenant
produit des résultats non spécifiés. Cela permet aux implémentations de continuer à prendre en charge les
ancien comportement requis.
EXEMPLES
Aucun.
RAISONNEMENT
La description initiale de cet utilitaire a été adaptée du SVID. Il contient quelques
fonctionnalités introuvables dans la version 7 ou les systèmes dérivés de BSD. Certaines des différences entre
le POSIX et le BSD ed Les utilitaires comprennent, sans toutefois s'y limiter :
* Le BSD - l'option ne supprime pas le '!' invite après un ! commander.
* BSD ne prend pas en charge les significations spéciales du '%' et '!' personnages au sein d'un !
commander.
* BSD ne prend pas en charge le adresses ';' et ','.
* BSD autorise les paires commande/suffixe pp, ll, et ainsi de suite, qui ne sont pas spécifiés dans ce
tome de POSIX.1‐2008.
* BSD ne prend pas en charge le '!' partie de caractère de la e, r, ou w les commandes.
* Un échec g La commande dans BSD définit le numéro de ligne sur la dernière ligne recherchée s'il y a
Pas de correspondance.
* BSD ne définit pas par défaut le commander liste à la p commander.
* BSD ne prend pas en charge le G, h, H, n, ou V les commandes.
* Sur BSD, s'il n'y a pas de texte inséré, la commande d'insertion change la ligne courante en
la ligne référencée -1 ; c'est-à-dire la ligne avant la ligne spécifiée.
* Sur BSD, le rejoindre la commande avec une seule adresse change la ligne actuelle en celle-ci
adresse.
* BSD ne prend pas en charge le P commander; de plus, dans BSD, il est synonyme de p
commander.
* BSD ne prend pas en charge le défaire des commandes j, m, r, s, ou t.
* La version 7 ed commander W, et le BSD ed commandes W, wqet z ne sont pas présents dans
ce volume de POSIX.1‐2008.
Le manuel de formation -s option a été ajoutée pour permettre la fonctionnalité de la suppression - option d'une manière
compatible avec les directives de syntaxe des utilitaires.
Dans les premières propositions, il y avait une limite, {ED_FILE_MAX}, qui décrivait l'historique
limites de certains ed utilitaires dans leur gestion des fichiers volumineux ; certains d'entre eux ont eu
problèmes avec des fichiers de plus de 100000 octets. C'est cette limitation qui a incité une grande partie des
le désir d'inclure un scission dans ce volume de POSIX.1‐2008. Étant donné que cette limite était
supprimé, ce volume de POSIX.1‐2008 nécessite que les implémentations documentent la taille du fichier
limites imposées par ed dans le document de conformité. La limite {ED_LINE_MAX} était également
supprimé; par conséquent, la limite globale {LINE_MAX} est utilisée pour les lignes d'entrée et de sortie.
La manière dont le l La commande écrit des caractères non imprimables a été modifiée pour éviter le
méthode historique de frappe arrière arrière. Sur les terminaux d'affichage vidéo, l'overstrike est
ambigu car la plupart des terminaux remplacent simplement les caractères surchargés, ce qui rend le l le format
pas utile aux fins auxquelles il est destiné de comprendre sans ambiguïté le contenu de la
ligne. L'historique -les évasions étaient également ambiguës. (La chaîne "a\0011" pourriez
représentent une ligne contenant ces six caractères ou une ligne contenant les trois caractères
'une', un octet avec une valeur binaire de 1 et un 1.) Dans le format requis ici, un
apparaissant dans la ligne est écrit comme "\\" de sorte que la sortie est vraiment sans ambiguïté. Les
méthode de marquage des extrémités des lignes a été adoptée à partir de la ex éditeur et est requis pour tout
ligne se terminant par personnages; les «$» est placé sur toutes les lignes de sorte qu'un vrai «$» at
la fin d'une ligne ne peut pas être mal interprétée.
Les versions antérieures de cette norme autorisaient les implémentations avec des octets autres que huit
bits, mais cela a été modifié dans cette version.
La description de la façon dont un NUL est écrit a été supprimée. Le caractère NUL ne peut pas être dans le texte
fichiers, et ce volume de POSIX.1‐2008 ne devrait pas dicter le comportement dans le cas de
saisie erronée et indéfinie.
Contrairement à certains autres utilitaires d'édition, les noms de fichiers acceptés par le E, e, Ret r
les commandes ne sont pas des modèles.
Les premières propositions indiquaient que le −p l'option ne fonctionnait que lorsque l'entrée standard était associée
avec un terminal. Cela a été modifié pour se conformer aux implémentations historiques,
permettant ainsi aux applications de s'interposer entre un utilisateur et le ed utilitaire.
La forme de la commande de substitution qui utilise le n suffixe était limité dans certains
documentation (où cela a été décrit à tort comme ``référencement arrière''). Cette limite
a été omis car il n'y a aucune raison pour qu'un éditeur traite des lignes de {LINE_MAX}
longueur devrait avoir cette restriction. La commande s/x/X/2047 devrait pouvoir se substituer
la 2047e occurrence de 'X' sur une ligne.
L'utilisation de commandes d'impression avec des suffixes d'impression (comme pn, lp, et ainsi de suite) a été faite
non spécifié car les systèmes basés sur BSD le permettent, alors que System V ne le permet pas.
Certains systèmes basés sur BSD se ferment immédiatement à la réception de la fin de fichier si toutes les lignes du
le fichier a été supprimé. Étant donné que ce volume de POSIX.1‐2008 fait référence au q commande dans
dans ce cas, un tel comportement n'est pas autorisé.
Certaines implémentations historiques ont renvoyé l'état de sortie zéro même si des erreurs de commande avaient
eu lieu; ceci n'est pas autorisé par ce volume de POSIX.1‐2008.
Certaines implémentations historiques contenaient un bogue qui permettait à un seul être
entré en mode de saisie comme . Ceci n'est pas autorisé par ed
car il n'y a aucune description de l'échappement des caractères en mode de saisie ;
les caractères sont entrés dans le tampon exactement tels qu'ils ont été saisis. La méthode typique de
entrer dans un seul a été de le faire précéder d'un autre caractère puis d'utiliser le
commande de substitution pour supprimer ce caractère.
Il est difficile sous certains modes de certaines versions du terminal du système d'exploitation historique
pilotes pour faire la distinction entre une condition de fin de fichier et une déconnexion de terminal.
POSIX.1‐2008 ne nécessite pas d'implémentations pour faire la distinction entre les deux situations,
qui permet des implémentations historiques de la ed utilitaire sur les plateformes historiques pour
se conformer. Les implémentations sont encouragées à faire la distinction entre les deux, si possible, et
prendre les mesures appropriées lors de la déconnexion des bornes.
Historiquement, ed accepté une adresse zéro pour le a et r commandes pour insérer du texte
au début du tampon d'édition. Lorsque le tampon était vide, la commande .= retourné zéro.
POSIX.1‐2008 exige la conformité à la pratique historique.
Par souci de cohérence avec le a et r commandes et une meilleure fonctionnalité utilisateur, le i et c
les commandes doivent également accepter une adresse de 0, auquel cas 0i est traité comme 1i et également
pour c commander.
Toutes les adresses suivantes sont valides :
+++ Trois lignes après la ligne courante.
/modèle/− Une ligne avant la prochaine occurrence de pattern.
−2 Deux lignes avant la ligne courante.
3 −−−− 2 Ligne un (notez l'adresse négative intermédiaire).
1 2 3 Ligne six.
N'importe quel nombre d'adresses peut être fourni aux commandes prenant des adresses ; par exemple,
"1,2,3,4,5p" imprime les lignes 4 et 5, car deux est le plus grand nombre d'adresses valides
accepté par le impression commander. Ceci, en combinaison avec le délimiteur,
permet aux utilisateurs de créer des commandes basées sur des modèles ordonnés dans le fichier. Par exemple, le
commander "3;/foo/;+2p" affichera la première ligne après la ligne 3 qui contient le motif
foo, plus les deux lignes suivantes. Notez que l'adresse "3 ;" doit encore être évalué avant
étant rejetée, car l'origine de la recherche pour le "/foo/" la commande en dépend.
Historiquement, ed chaînes d'adresses interdites, comme indiqué ci-dessus, consistant uniquement en
ou séparateurs; par exemple, ",,," or ";;;" ont été considérés comme une erreur.
Pour assurer la cohérence de la spécification d'adresse, cette restriction est supprimée. Le tableau suivant
répertorie quelques-unes des formes d'adresses désormais possibles :
?? ??
│Adresse │ Adr1 │ Adr2 │ Statut │ Commentaires │
?? ??
│7, │ 7 │ 7 │ Historique │ │
│7,5, │ 5 │ 5 │ Historique │ │
│7,5,9 │ 5 │ 9 │ Historique │ │
│7,9 │ 7 │ 9 │ Historique │ │
│7,+ │ 7 │ 8 │ Historique │ │
│, │ 1 │ $ │ Historique │ │
,7 1 │ 7 │ Rallonge │ │
│,, │ $ │ $ │ Poste │ │
,; │ $ │ $ │ Extension │ │
7 ; │ 7 │ 7 │ Historique │ │
7;5; │ 5 │ 5 │ Historique │ │
│7;5;9 │ 5 │ 9 │ Historique │ │
│7;5,9 │ 5 │ 9 │ Historique │ │
│7;$;4 │ $ │ 4 │ Historique │ Valide, mais erroné. ??
│7;9 │ 7 │ 9 │ Historique │ │
│7;+ │ 7 │ 8 │ Historique │ │
; . │ $ │ Historique │ │
;7 . │ 7 │ Rallonge │ │
;; │ $ │ $ │ Extension │ │
│;, │ $ │ $ │ Extension │ │
?? ??
Historiquement, ed accepté le '^' caractère comme une adresse, auquel cas il était identique
à la personnage. POSIX.1‐2008 n'exige ni n'interdit ce comportement.
FUTUR DIRECTIONS
Aucun.
Utilisez edposix en ligne en utilisant les services onworks.net