Articulo de referencia

ed (editor de texto)

ed (pronunciado como letras distintas, / ˌ iː ˈ d iː / ) [ 1 ] es un editor de línea . Fue una de las primeras características delsistema operativo Unix . [ 2 ] Aunque no se usa...

ed (pronunciado como letras distintas, / ˌ ˈ d / ) [ 1 ] es un editor de línea . Fue una de las primeras características delsistema operativo Unix . [ 2 ] Aunque no se usa comúnmente hoy en día, sigue siendo parte de los estándares POSIX y Open Group , [ 3 ] junto con el editor de pantalla completa vi .

Historia

El editor de texto ed fue uno de los tres primeros elementos clave del sistema operativo Unix —ensamblador , editor y shell— desarrollado por Ken Thompson en agosto de 1969 en un PDP-7 en los laboratorios AT&T Bell . [ 2 ] Muchas de sus características provenían del editor de texto qed desarrollado en la Universidad de California, Berkeley, alma mater de Thompson . [ 4 ] Thompson estaba muy familiarizado con qed y lo había reimplementado en los sistemas CTSS y Multics . Las versiones de qed de Thompson fueron notables por ser las primeras en implementar expresiones regulares . Las expresiones regulares también están implementadas en ed, aunque su implementación es considerablemente menos general que la de qed.

Dennis M. Ritchie produjo lo que Doug McIlroy describió más tarde como el ed "definitivo" [ 5 ] , y aspectos de ed influyeron en ex y posteriormente en vi . El comando no interactivo de Unix, grep, se inspiró en un uso especial común de qed y posteriormente de ed, donde el comando realizag/re/p una búsqueda global de expresiones regulares e imprime las líneas que contienen coincidencias. El editor de flujo de Unix, sed , implementó muchas de las características de scripting de qed que no eran compatibles con ed en Unix [ 6 ] .

Los comandos `ed` suelen imitarse en otros editores de texto. Por ejemplo, `ED` de CP/M , `EDLIN` en las primeras versiones de MS-DOS y en las versiones de 32 bits de Windows NT tiene una sintaxis similar, y los editores de texto en muchos MUD ( como LPMud y sus derivados) utilizan una sintaxis parecida a la de `ed`. Sin embargo, estos editores suelen tener funciones más limitadas.

En la práctica actual, ed rara vez se usa de forma interactiva, aunque a veces se usa en scripts de shell . Para uso interactivo, ed fue absorbido por los editores sam , vi y Emacs en la década de 1980. ed se puede encontrar en prácticamente todas las versiones de Unix y Linux disponibles, y como tal es útil para las personas que tienen que trabajar con múltiples versiones de Unix. En sistemas operativos basados ​​en Unix, algunas utilidades como SQL*Plus ejecutan ed como editor si las variables de entorno EDITOR y VISUAL no están definidas. [ 7 ] Si algo sale mal, ed a veces es el único editor disponible. Esta suele ser la única vez que se usa de forma interactiva.

Características

La página de manual para GNU ed

Las características de ed incluyen:

La versión GNU incluye opciones destinadas a mejorar la retroalimentación. Su uso ed -v -p:proporciona una solicitud simple y permite mensajes de retroalimentación más útiles. [ 8 ] El -pinterruptor está definido en POSIX desde XPG2 (1987). [ 3 ]

Experiencia de usuario

Conocido por su brevedad, ed casi no ofrece retroalimentación, [ 9 ] y ha sido llamado (por Peter H. Salus ) "el editor más hostil para el usuario jamás creado", incluso en comparación con el contemporáneo (y notoriamente complejo) TECO . [ 2 ] Por ejemplo, el mensaje que produce ed en caso de error y cuando quiere confirmar la salida sin guardar, es simplemente "?". No informa el nombre del archivo actual ni el número de línea, ni siquiera muestra los resultados de un cambio en el texto, a menos que se solicite. Las versiones anteriores (c. 1981) ni siquiera pedían confirmación cuando se emitía un comando quit cuando había cambios sin guardar. [ 9 ] Esta brevedad era apropiada en las primeras versiones de Unix, cuando una consola era un teletipo [ a ] , los módems eran lentos y la memoria era limitada. A medida que la tecnología informática mejoró y estas limitaciones se suavizaron, los editores con más retroalimentación se convirtieron en la norma.

La documentación de glibc señala un código de error llamado EDcuya descripción (errorstr) es simplemente un signo de interrogación, indicando que "el usuario experimentado sabrá qué está mal". [ 10 ]

Ejemplo

Aquí hay un ejemplo de transcripción de una sesión de ed. Para mayor claridad, los comandos y el texto escrito por el usuario están en normal color, y la salida de ed es gray color.

a ed es el editor de texto estándar de Unix. Esta es la línea número dos. . 2i . ,l ed is the standard Unix text editor.$$This is line number two.$ con texto.txt 633s/two/three/ ,l ed is the standard Unix text editor.$$This is line number three.$ con texto.txt 65 q

El resultado final es un archivo de texto simple llamado text.txt que contiene el siguiente texto:

ed es el editor de texto estándar de Unix. Esta es la línea número tres.

El comando, que comienza con un archivo vacío, aagrega texto (todos los comandos `ed` son letras individuales). El comando pone a `ed` en modo de inserción , insertando los caracteres que siguen y termina con un punto en una línea. Las dos líneas que se ingresan antes del punto terminan en el búfer del archivo. El comando también entra en modo de inserción e insertará el texto ingresado (una línea vacía en nuestro caso) antes de la segunda línea. Todos los comandos pueden ir precedidos por un número de línea para operar en esa línea.2i

En la línea , la L minúscula representa el comando de lista. El comando va precedido de un rango, en este caso, que es un atajo para . Un rango son dos números de línea separados por una coma ( significa la última línea). A cambio, ed lista todas las líneas, de la primera a la última. Estas líneas terminan con signos de dólar, de modo que el espacio en blanco al final de las líneas sea claramente visible.,l,1,$$

Una vez insertada la línea vacía en la línea 2, la línea que dice "Esta es la línea número dos." ahora es en realidad la tercera línea. Este error se corrige con , un comando de sustitución. El lo aplicará a la línea correcta; después del comando se encuentra el texto que se va a reemplazar y luego el reemplazo. Al listar todas las líneas con la línea ahora se muestra que es correcta.3s/two/three/3,l

w text.txtescribe el búfer en el archivo text.txt haciendo que ed responda con , el número de caracteres escritos en el archivo. finalizará una sesión de ed.65q

Véase también

Notas

  1. ed es compatible con terminales como el Teletype Modelo 33.

Referencias

  1. Computerphile (06/07/2018), De dónde surgió GREP – Computerphile , archivado del original el 11/12/2021 , consultado el 21/10/2020
  2. 1 2 3 Salus, Peter H. (2005). El demonio, el ñu y el pingüino . Groklaw . Archivado del original el 5 de mayo de 2010.
  3. 1 2Referencia de shell y utilidades, Especificación única de UNIX , Versión 5 de The Open Grouped  
  4. DM Ritchie y KL Thompson, "QED Text Editor", MM-70-1373-3 (junio de 1970), reimpreso como "QED Text Editor Reference Manual", MHCC-004, Murray Hill Computing, Bell Laboratories (octubre de 1972).
  5. McIlroy, MD (1987). Un lector de Research Unix: extractos anotados del Manual del programador, 1971–1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139.
  6. "Sobre la historia temprana y el impacto de Unix" . Archivado del original el 7 de septiembre de 2017. Consultado el 22 de junio de 2023. Poco después surgió la necesidad de otro programa de propósito especial, gres, para la sustitución: g/re/s. Lee McMahon se encargó de escribirlo y pronto previó que la familia sería interminable: g/re/d, g/re/a, etc. A medida que su concepto se desarrollaba, se convirtió en...
  7. Administración de SQL*Plus. Archivado el 29/12/2019 en Wayback Machine . Consultado el 23/07/2016.
  8. Manual de comandos generales de Linux de ManKier.comed(1)  
  9. 1 2 Donald A. Norman (1981). "La verdad sobre UNIX" (PDF) . Datamation . Archivado del original (PDF) el 16 de abril de 2014.
  10. "La biblioteca C de GNU - Códigos de error" . www.gnu.org . Archivado del original el 8 de octubre de 2022. Consultado el 8 de octubre de 2022 .
  • ed: editar texto Referencia de shell y utilidades, Especificación única de UNIX , Versión 5 de The Open Group   
  • Página del manual de Unix First Edition que describe ed .
  • ed(1): editor de texto Versión 7 Manual del programador de Unix   
  • ed(1): editor de texto Plan 9 Programmer's Manual, Volumen 1 , un descendiente directo de la edición original.   
  • Página principal de GNU ed
  • Una historia de UNIX antes de Berkeley, sección 3.1 describe la historia de ed.