Difference between revisions of "sed sed"

From Noah.org
Jump to navigationJump to search
 
Line 1: Line 1:
 
 
=== find part of a line, substitute, keep rest of time intact ===
 
=== find part of a line, substitute, keep rest of time intact ===
 
   sed -i -e "s/^#DatabaseDirectory \(.*\)/DatabaseDirectory \\1/" myfile.txt
 
   sed -i -e "s/^#DatabaseDirectory \(.*\)/DatabaseDirectory \\1/" myfile.txt
Line 6: Line 5:
 
This finds line that begins with exit(ignore leading spaces), then insert 'authdarmond start' before it.
 
This finds line that begins with exit(ignore leading spaces), then insert 'authdarmond start' before it.
 
   sed -i -e "/^\\s*exit/i/authdaemond start" /etc/rc.local;
 
   sed -i -e "/^\\s*exit/i/authdaemond start" /etc/rc.local;
=== fine pattern and append line ===
+
=== find pattern and append line ===
 
Note how replace pattern spans multiple lines
 
Note how replace pattern spans multiple lines
 
<pre>sed -i -e '/#!\/bin\/sh/a\
 
<pre>sed -i -e '/#!\/bin\/sh/a\
 
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" ; export QMAILQUEUE' /var/qmail/supervise/qmail-smtpd/run
 
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" ; export QMAILQUEUE' /var/qmail/supervise/qmail-smtpd/run
 
</pre>
 
</pre>

Revision as of 16:33, 5 February 2007

find part of a line, substitute, keep rest of time intact

 sed -i -e "s/^#DatabaseDirectory \(.*\)/DatabaseDirectory \\1/" myfile.txt

find pattern in a line, insert new line before it

This finds line that begins with exit(ignore leading spaces), then insert 'authdarmond start' before it.

 sed -i -e "/^\\s*exit/i/authdaemond start" /etc/rc.local;

find pattern and append line

Note how replace pattern spans multiple lines

sed -i -e '/#!\/bin\/sh/a\
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" ; export QMAILQUEUE' /var/qmail/supervise/qmail-smtpd/run