Ed (Unix)
ed software | |
---|---|
![]() | |
Genere | Editor di testo |
Sviluppatore | Bell Labs |
Data prima versione | 1971 |
Sistema operativo | Unix-like |
Modifica dati su Wikidata · Manuale |
ed è un editor di testo, standard originario per tale tipologia di programmi per il sistema operativo Unix. Il suo sviluppo fu ispirato da un editor precedente conosciuto come QED che influenzò a sua volta ex, dal quale derivò vi.[1]
Caratteristiche [2]
ed si può trovare virtualmente in ogni versione di Unix e GNU/Linux disponibile; spesso chi ha a che fare con più versioni di Unix conosce almeno i comandi base di ed.
La sintassi di ed ha influenzato svariati programmi per Unix come sed, awk e grep, oltre che il linguaggio di programmazione Perl.
Famoso per la sua sintassi concisa, ed non ha quasi riscontro visuale. Per esempio, il messaggio che ed produce in caso di errore o quando vuole assicurarsi che l'utente intenda uscire senza salvare è "?". Non riporta il nome del file corrente o il numero di linea, a meno di non richiederlo.
Questa sintassi era appropriata nelle prime versioni di Unix, quando le console erano stampanti, i modem erano lenti, e lo spazio su disco e la memoria erano preziosi. Questi vantaggi cessarono di essere tali quando editor più interattivi divennero lo standard.
Sessione di esempio
Ecco la trascrizione di una sessione di esempio di ed:
a ed is the standard Unix text editor. This is line number two. . 2i * . 1,$l ed is the standard Unix text editor.$ *$ This is line number two.$ 3s/two/three/ 1,$l ed is the standard Unix text editor.$ *$ This is line number three.$ w text 66 q
Spiegazione dell'esempio
Nell'esempio si parte con un file vuoto e si usa a per inserire testo (tutti i comandi di ed sono singoli caratteri). Questo ci porta nel modo di inserimento, che termina inserendo un singolo punto in una linea. Le due linee inserite prima del punto vengono immesse nel buffer del file. 2i porta al modo di inserimento e inserisce il testo seguente (* nell'esempio) prima della riga due. Tutti i comandi possono essere prefissi con un numero di linea per indicare di operare su quella riga.
In 1,$l il carattere l sta per il comando list. Questa volta preponiamo al comando una gamma, indicando le due linee limite separandole con una virgola ($ indica l'ultima riga). ed mostra quindi tutte le righe dalla prima all'ultima. Queste righe finiscono con il simbolo del dollaro, in maniera che il fine linea sia chiaramente visibile.
In seguito viene corretto l'errore nella linea 3 con 3s/two/three/, un comando di sostituzione. Il 3 indica la linea in cui effettuare il comando s, seguono il testo da rimpiazzare e il rimpiazzo. Stampando tutte le linee con 1,$1 vediamo che la linea adesso è corretta.
w text scrive il buffer nel file "text". ed risponde con 66, che è il numero di caratteri scritti nel file. q chiude la sessione.
Note
- ^ (EN) GNU 'ed' Manual, su Progetto GNU. URL consultato l'11 febbraio 2020.«ed was created, along with the Unix operating system, by Ken Thompson and Dennis Ritchie. It is the refinement of its more complex, programmable predecessor, QED, to which Thompson and Ritchie had already added pattern matching capabilities»
- ^ ed, l'editor del Vero Programmatore, su xmau.com. URL consultato l'11 febbraio 2020.
Voci correlate
- Unix
- Vi (software)
- QED (editor di testo)
Collegamenti esterni
- (EN) ed, in The Open Group Base Specifications, n. 7, The Open Group, 2018.
V · D · M | ||
---|---|---|
File system | cat · cd · chattr · chmod · chown · chgrp · cksum · cmp · cp · du · df · fdisk · file · fsck · fuser · gzip · ln · ls · lsattr · lsof · mkdir · mknod · mount · mv · pwd · rm · rmdir · split · tar · touch · umount · umask | ![]() |
Processi | at · chroot · crontab · exit · kill · killall · nice · nohup · pgrep · pidof · pkill · ps · pstree · sleep · time · top · wait | |
Ambiente utente | alias · env · export · finger · id · logname · mesg · newgrp · passwd · su · sudo · uname · uptime · w · wall · who · whoami · write | |
Elaborazione testo | awk · comm · cut · diff · ed · ex · fmt · head · iconv · join · less · more · paste · sed · sort · tail · tr · uniq · vi · wc · xargs | |
Script di shell | basename · dirname · echo · expr · false · printf · test · true · unset | |
Rete | dig · nslookup · ifconfig · netstat · ping · rcp · rlogin · route · netcat · traceroute | |
Ricerche | find · grep · strings | |
Amministrazione | dmesg · groupadd · groupdel · groupmod · mdadm · shutdown · useradd · userdel · usermod | |
Altri | banner · bc · cal · clear · date · dd · lp · man · size · tee · tput · yes |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/24px-Computer_n_screen.svg.png)