Sed: Difference between revisions

From Psygen Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 64: Line 64:
== Special Characters ==
== Special Characters ==


<code>&</code> Corresponds to the pattern found.
<code>'''&'''</code> '''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:
 
<code>sed 's/abc/(abc)/' <old.txt >new.txt</code> - Replaces '''abc''' with '''(abc)'''
 
What if you don't know the output of the search string? You can use the special character <code>&</code>, it represents the pattern that sed found.
 
<code>sed 's/[a-z]*/(&)/' <old.txt >new.txt <code>
 
 


== Command Line Options ==
== Command Line Options ==


<code> -r </code> Enable sed to use [[Regular Expressions]]
<code> -r </code> &nbsp; Enable sed to use [[Regular Expressions]]





Revision as of 20:30, 10 January 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

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 /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


References

  1. sed man page
  2. Grymoire sed tutorial