Sed
From Jedisaber Wiki
Sed is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline). Sed is similar editors that script edits, but sed only makes one pass over the input(s), and thus is more efficient. But it is sed's ability to filter text in a pipeline which particularly distinguishes it from other types of editors.
Commands
: label
# comment
{....} Block
= print line number
a \ Append
b label Branch
c \ change
d and D Delete
g and G Get
h and H Hold
i \ Insert
l Look
n and N Next
p and P Print
q Quit
r filename Read File
Substitution:
s/..../..../ Substitute. Changes the 1st pattern to the second pattern.
Example: sed 's/red/blue/' < file.txt Changes "red" to "blue" in file.txt
cat file.txt | sed 's/one/two/' Changes "one" to "two" in file.txt
The search pattern is on the left, and the replacement string is on the right. By default, sed replaces the first occurrence per line.
t label Test
w filename Write Filename
x eXchange
y/..../..../ Transform
sed Pattern Flags
/g Global. By default, sed only matches/replaces the first occurrence of a pattern for each line. The /g makes it replace all occurrences.
Example:
sed 's/red/blue/g' < file.txt
/I Ignore Case
/p Print
/w filename Write Filename
Special Characters
& Corresponds to the pattern found.
& is used when searching for a pattern and then adding some characters (such as parenthesis> around or near the pattern sed found. It's easy if you're searchin for a particular string:
sed 's/abc/(abc)/' <old.txt >new.txt - Replaces abc with (abc)
What if you don't know the output of the search string? You can use the special character &, it represents the pattern that sed found.
sed 's/[a-z]*/(&)/' <old.txt >new.txt
Command Line Options
-r Enable sed to use Regular Expressions
-e The -e option lets you combine multiple commands
sed -e 's/a/A/' -e 's/b/B/' <old.txt >new.txt
-i Inline editing.
References
