!!!ED Editor ed is the standard line oriented editor available on all Unix / Linux systems. It also comes with Mac OS/X, and is available for Windows. ed is a line oriented editor (as apposed to a screen oriented editor). It requires no graphics and works on text one line at a time. To evoke ed you use: {{{ed myfile.txt}}} Note, the stuff in the () below represents a range of lines to be operated on. The stuff shown in the parenthesis is the default - what is used if you don't include an address range. If you do include it, don't use the parenthesis. !!ed commands !!Save and quit commands |(1,$)w | write (save) file |(1,$)wq | write and quit |(1,$)w FILE| write (save) to new file |(1,$)wq FILE | write to new file and quit |q| quit |Q| quit - ignore changes |e FILE | edit new file (erase prior contents) |E FILE | edit new file even of old file changed |f FILE | change current file name to FILE |($)r FILE| read FILE into existing text !!Displaying text |(.,.)p | print lines |(.,.)n | print lines with line numbers |(.,.)l | list lines (display control characters) !!Changing the current line |.| current line |N| goto line N |$| last line |, or % | all lines |.+1| current line plus 1 |return | move to and display next line |-| previous line |+N| N'th next line |-N| N'th previous line |;| .,$ |/re/| find regular expression |//| repeat last regular expression |?re?| search backwards |(.)kX| mark line as X (save position) |'X| the line marked as X (used anywhere a line number can be used) |.=| display current line number |=| display number of lines ed's regular expression syntax corresponds to grep's basic regular expression syntax. See [grep] !!Changing text |(.)a| append text after current line (up to end input) |(.)i| insert text before current line (up to end input) |(.,.)c | change (replace lines - delete & insert) |(.,.)d | delete lines |(.,.)s/re/replacement/ | replace text (once per line) |(.,.)s/re/replacement/g| replace text (all per line) |(.,.)s/re/replacement/N| replace text (N'th occurrence per line - start at 1) |(.,.)s | repeat last substitution |.| end input !!Misc commands |(.,.+1)j| join addressed lines |(.,.)m(.)| move lines |(.,.)t(.)| copy (transfer) lines !!Regular expressions |.| match any character |\.| match period |x*| match zero or more x's |{{{[}}}xyz{{{]}}}| character class - match x, y, or z |{{{[}}}a-z{{{]}}} | match a through z |{{{[}}}^xyz{{{]}}} | match anything except x, y, or z |^abc| match abc at the beginning of a line |abc$ | match abc at the end of a line |{{{[}}}:alnum:{{{]}}}| |{{{[}}}:alpha:{{{]}}}| |{{{[}}}:cntrl:{{{]}}}| |{{{[}}}:digit:{{{]}}}| |{{{[}}}:lower:{{{]}}}| |{{{[}}}:print:{{{]}}}| |{{{[}}}:space:{{{]}}}| |{{{[}}}:upper:{{{]}}}| !!Advanced features |(1,$)g/re/command-list | execute command-list for each matching line each command must be on its own separate line lines may be continued by ending them in \ |(1,$)G/re/| interactively edit each matching line