+++
title = "HOWTO: /bin/ed by example"
author = ["George M Jones"]
publishDate = 2020-08-28
lastmod = 2023-12-06T05:45:25-05:00
tags = ["geek", "unix", "100DaysToOffload", "HOWTO"]
categories = ["blog"]
draft = false
+++
Below I **show** an editing session that uses basic `/bin/ed` commands.
> `/bin/ed` is the standard Unix Editor
`ed` was written round 1969. It's still here. `grep` comes from
`/bin/ed`: `g/re/p` works as an ed command to search \*g\*lobally for a
\*re\*gular expression and \*p\*rint the matching lines. ed commands
will be familiar to users of `sed`, as sed is the "stream editor"
with a very similar set of commands. ed commands will be familiar to
`vi` users. If you type ":" in vi, you get, basically, an ed prompt.
You can type ed commands (see below) and they work. "vi" is the
"visual interface" to ed (or one of it's successors). Though I am a
die hard `emacs` user, often when I just want to do a quick edit or take
some note I just fire up `/bin/ed` and go....
## 1 A sample `/bin/ed` session... {#a-sample-bin-ed-session-dot-dot-dot}
```text
gmj@ed tmp [master] $ ed -p: ed-HOWTO-blog.org # use ":" for the prompt, just like vi
ed-HOWTO-blog.org: No such file or directory
:# append some lines
:a
* Write a blog post about /bin/ed
/bin/ed is "The standard Unix editor" ... since 1969
It was written by Richard Stallman
* Show some basic ed commands
- "a" :: append
- "p" :: print
- "s" :: substitute
- "w" :: write
- "q" :: quit
- "." :: end input
:
:# Whoops, Stallman did not write ed
:# go back to line 1
:1
* Write a blog post about /bin/ed
:# make sure we are at line 1
:.=
1
:# find the mistake
:/Stallman/
It was written by Richard Stallman
:.=
3
:# its on line three
:# fix it
:s/Richard Stallman/Ken Thompson/
:# let's see the fix
:p
It was written by Ken Thompson
:# let's see the start of the file to here
:1,.p
* Write a blog post about /bin/ed
/bin/ed is "The standard Unix editor" ... since 1969
It was written by Ken Thompson
:# OK, looks good, but one more change
:p
It was written by Ken Thompson
:s/Ken Thompson/Ken Thompson or maybe Dennis Ritchie/p
It was written by Ken Thompson or maybe Dennis Ritchie
:# let's see the whole file now, it's short
:1,$p
* Write a blog post about /bin/ed
/bin/ed is "The standard Unix editor" ... since 1969
It was written by Ken Thompson or maybe Dennis Ritchie
* Show some basic ed commands
- "a" :: append
- "p" :: print
- "s" :: substitute
- "w" :: write
- "q" :: quit
- "." :: end input
:# now lets grep (g/re/p) for lines that contain "ed"
:g/ed/p
* Write a blog post about /bin/ed
/bin/ed is "The standard Unix editor" ... since 1969
* Show some basic ed commands
:# ok, this looks good. write and quit
:w
288
:q
gmj@ed tmp [master] $
```
Post 25 #100DaysToOffload