Sed: Difference between revisions
No edit summary |
|||
Line 36: | Line 36: | ||
<code>r <i>filename</i></code> Read File | <code>r <i>filename</i></code> Read File | ||
<code>t label</code> Test | |||
<code> | |||
<code>w filename Write Filename | |||
<code>x eXchange | |||
<code>y/..../..../</code> Transform | |||
== Substitution == | |||
<code>s/..../..../</code> Substitute. Changes the 1st pattern to the second pattern.<br /> | |||
<code> | '''Example:'''<br /> | ||
<code>sed 's/red/blue/' < file.txt</code> Changes "red" to "blue" in file.txt <br /> | |||
<code> | <code>cat file.txt | sed 's/one/two/'</code> 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. | |||
== sed Pattern Flags == | == sed Pattern Flags == |
Revision as of 04:03, 2 March 2017
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
t label
Test
w filename Write Filename
x eXchange
y/..../..../
Transform
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.
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