| word looked up : | home / archive |
SedSed (which stands for Stream EDitor) is a simple but powerful computer program used to apply various pre-specified textual transformations to a sequential stream of text data. It reads input files line by line, edits each line according to rules specified in its simple language (the sed script), and then outputs the line. While originally created as a UNIX utility by Lee E. McMahon of Bell Labs in 1973/1974, sed is now available for virtually every operating system that supports a command line.Sed is often thought of as a non-interactive text editor. It differs from conventional text editors in that the processing of the two inputs is inverted. Instead of iterating once through a list of edit commands applying each one to the whole text file in memory, sed iterates once through the text file applying the whole list of edit commands to each line. Because only one line at a time is in memory, sed can process arbitrarily-large text files. Sed's command set is modeled after the ed editor, and most commands work similarly in this inverted paradigm. For example, the command 25d means if this is line 25, then delete (don't output) it, rather than go to line 25 and delete it as it does in ed. The notable exception is the copy and move commands, which span a range of lines and thus don't have straight-forward equivalents in sed. Instead, sed introduces an extra buffer called the hold space, and additional commands to manipulate it. The ed command to copy line 25 to line 76 (25t76) for example would be coded as two separate commands in sed (25h; 76g), to store the line in the hold space until the point at which it should be retrieved. The following example shows a typical usage of sed: sed -e 's/oldstuff/newstuff/g' inputFileName > outputFileName The s stands for substitute; the g stands for global. That means in the whole line. After the first slash is the regular expression to search for and after the second slash is the expression to replace it with. The substitute command (s///) is by far the most powerful and most commonly used sed command. Under Unix, sed is often used as a filter in a pipeline: generate_data | sed -e 's/x/y/'That is, generate the data, but make the small change of replacing x with y. Several substitutions or other commands can be put together in a file called for example subst.sed and then be applied like sed -f subst.sed inputFileName > outputFileName Besides substitution, other forms of simple processing are possible. For example the following script deletes empty lines or lines that only contain spaces:
sed -e '/^ *$/d' inputFileName This example used some of the following metacharacters:
Sed is one of the very early Unix commands that permitted command line processing of data files. It evolved as the natural successor to the popular grep command. Cousin to the later AWK, sed allowed powerful and interesting data processing to be done by shell scripts. Sed was probably the earliest Unix tool that really encouraged regular expressions to be used ubiquitously. Sed and AWK are often cited as the progenitors and inspiration for Perl; in particular the s/// syntax from the example above is part of Perl's syntax. Sed's language doesn't have variables and only primitive GOTO and branching functionality; nevertheless, the language is Turing-complete.
External links:
In Egyptian mythology, Sed was a god of redemption. Alternative: Sedim By rapid beating of the pulse.html">pulse alone.
And at the second venture, found his man,
Or fear, or dread discov'ry to avoid,
At once quick beating of the pulse and heart.
He thought.html">thought to seem asleep would him befriend.
MEANWHILE the king, though not without much pains,
With these, he said, I'll mark.html">mark the fond gallant,
In front, snipt off a bulky lock of hair.html">hair.
But carelessly away the trophy threw;
And thus the prince's subtle project shook;
His fellow servants like himself to mark.
WHEN day arrived the monarch was surprised,
No hair in front of either now was seen;
Fifteen or more, if I believe my sight,
Well! well! he'll now escape if mum he prove;
THE SERVANT GIRL JUSTIFIED
T'another shop I now shall have recourse;
Has many stories for my purpose fit.
Upon an ancient work my hands I've placed;
And various characters we may.html">may behold;
My story int'rest in her page creates;
Simplicity with striking art combin'd.
I shall, as usual, here and there allot
Without such license I'd not persevere,
Some may be long, though others are too short.
LET us proceed, howe'er (our plan explained:)
She pleas'd his eye, and presently he thought,
He prov'd not wrong; the wench was blithe and gay,
To rise, and leave his wife asleep in bed;
. All is still licensed under the GNU FDL.
|
|
|||||