mod_sed.html.en revision 4aa603e6448b99f9371397d439795c91a93637ea
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
782d5365e084a40e4f717dafbe00fc41476a7cfeChristian Maeder<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
97018cf5fa25b494adffd7e9b4e87320dae6bf47Christian Maeder XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder This file is generated from xml source: DO NOT EDIT
34bff097c14521b5e57ce37279a34256e1f78aa5Klaus Luettich XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
f3a94a197960e548ecd6520bb768cb0d547457bbChristian Maeder<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" />
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<script src="/style/scripts/prettify.min.js" type="text/javascript">
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<link href="/images/favicon.ico" rel="shortcut icon" /></head>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<p class="apache">Apache HTTP Server Version 2.5</p>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<img alt="" src="/images/feather.gif" /></div>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<div class="up"><a href="./"><img title="<-" alt="<-" src="/images/left.gif" /></a></div>
fe216849cef7b87c6800aad21178d1e686575d8fChristian Maeder<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div>
ae179fb240298858539e0ff2b2e515d39ac17efcChristian Maeder<div id="preamble"><h1>Apache Module mod_sed</h1>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<p><span>Available Languages: </span><a href="/en/mod/mod_sed.html" title="English"> en </a> |
7b27b67b1c8516d7ccf1610a17fec93662d6a93fChristian Maeder<a href="/fr/mod/mod_sed.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a></p>
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Filter Input (request) and Output (response) content using <code>sed</code> syntax</td></tr>
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder<tr><th><a href="module-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<tr><th><a href="module-dict.html#ModuleIdentifier">Module�Identifier:</a></th><td>sed_module</td></tr>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<tr><th><a href="module-dict.html#SourceFile">Source�File:</a></th><td>mod_sed.c sed0.c sed1.c regexp.c regexp.h sed.h</td></tr>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<tr><th><a href="module-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.3 and later</td></tr></table>
ae179fb240298858539e0ff2b2e515d39ac17efcChristian Maeder<code class="module"><a href="/mod/mod_sed.html">mod_sed</a></code> is an in-process content filter. The <code class="module"><a href="/mod/mod_sed.html">mod_sed</a></code> filter implements the <code>sed</code> editing
ae179fb240298858539e0ff2b2e515d39ac17efcChristian Maedercommands implemented by the Solaris 10 <code>sed</code>
ae179fb240298858539e0ff2b2e515d39ac17efcChristian Maederprogram as described in the <a href="http://www.gnu.org/software/sed/manual/sed.txt">manual
792df0347edab377785d98c63e2be8e2ce0a8bdeChristian Maederpage</a>. However, unlike <code>sed</code>, <code class="module"><a href="/mod/mod_sed.html">mod_sed</a></code> doesn't take data from
792df0347edab377785d98c63e2be8e2ce0a8bdeChristian Maederinput. Instead, the filter acts on the entity data sent between client and
792df0347edab377785d98c63e2be8e2ce0a8bdeChristian Maederserver. <code class="module"><a href="/mod/mod_sed.html">mod_sed</a></code> can be used as an input or output filter. <code class="module"><a href="/mod/mod_sed.html">mod_sed</a></code> is a
792df0347edab377785d98c63e2be8e2ce0a8bdeChristian Maedercontent filter, which means that it cannot be used to modify client or
792df0347edab377785d98c63e2be8e2ce0a8bdeChristian Maederserver http headers.
bec7e681b0ba4d085638ec7af0cf7ae5068840caChristian MaederThe <code class="module"><a href="/mod/mod_sed.html">mod_sed</a></code> output filter accepts a chunk of data, executes the <code>sed</code> scripts on the data, and generates the output which is passed to the next filter in the chain.
782d5365e084a40e4f717dafbe00fc41476a7cfeChristian MaederThe <code class="module"><a href="/mod/mod_sed.html">mod_sed</a></code> input filter reads the data from the next filter in the chain, executes the <code>sed</code> scripts, and returns the generated data to the caller filter in the filter chain.
5e605dc61ff9ec5724c319603905dc9b0dccc05fChristian MaederBoth the input and output filters only process the data if newline characters are seen in the content. At the end of the data, the rest of the data is treated as the last line.
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<p>A tutorial article on <code class="module"><a href="/mod/mod_sed.html">mod_sed</a></code>, and why it is more powerful than simple
5e605dc61ff9ec5724c319603905dc9b0dccc05fChristian Maederstring or regular expression search and replace, is available <a href="https://blogs.oracle.com/basant/entry/using_mod_sed_to_filter">on
fe216849cef7b87c6800aad21178d1e686575d8fChristian Maeder<div id="quickview"><h3 class="directives">Directives</h3>
fe216849cef7b87c6800aad21178d1e686575d8fChristian Maeder<li><img alt="" src="/images/down.gif" /> <a href="#inputsed">InputSed</a></li>
fe216849cef7b87c6800aad21178d1e686575d8fChristian Maeder<li><img alt="" src="/images/down.gif" /> <a href="#outputsed">OutputSed</a></li>
fe216849cef7b87c6800aad21178d1e686575d8fChristian Maeder<li><img alt="" src="/images/down.gif" /> <a href="#sampleconf">Sample Configuration</a></li>
fe216849cef7b87c6800aad21178d1e686575d8fChristian Maeder<li><img alt="" src="/images/down.gif" /> <a href="#sed_commands">Sed Commands</a></li>
a255351561838b3743d03c1629d335cfb8b83804Christian Maeder</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
fe216849cef7b87c6800aad21178d1e686575d8fChristian Maeder<h2><a name="sampleconf" id="sampleconf">Sample Configuration</a></h2>
a255351561838b3743d03c1629d335cfb8b83804Christian Maeder <div class="example"><h3>Adding an output filter </h3><pre class="prettyprint lang-config"># In the following example, the sed filter will change the string
a255351561838b3743d03c1629d335cfb8b83804Christian Maeder# "monday" to "MON" and the string "sunday" to SUN in html documents
a255351561838b3743d03c1629d335cfb8b83804Christian Maeder# before sending to the client.
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder AddOutputFilter Sed html
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder</Directory></pre>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder <div class="example"><h3>Adding an input filter </h3><pre class="prettyprint lang-config"># In the following example, the sed filter will change the string
5908cc06d7a3f4dd46d2d7c7fe0fad43b6cd921fChristian Maeder# "monday" to "MON" and the string "sunday" to SUN in the POST data
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder# sent to PHP.
02a2037f53b925617df45eb62ca743d777672265Klaus Luettich AddInputFilter Sed php
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder</Directory></pre>
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder<h2><a name="sed_commands" id="sed_commands">Sed Commands</a></h2>
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder Complete details of the <code>sed</code> command can be found from the
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder <a href="http://www.gnu.org/software/sed/manual/sed.txt">sed manual
41076bb5f87e3dbebb53d762ccb9795801b4a27aChristian Maeder <dd>Branch to the label specified (similar to goto).</dd>
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder <dd>Copy the current line to the hold buffer.</dd>
ee1ceac4345bc824210b2f7c6d6b182cb1902547Christian Maeder <dd>Append the current line to the hold buffer.</dd>
ee1ceac4345bc824210b2f7c6d6b182cb1902547Christian Maeder <dd>Copy the hold buffer to the current line.</dd>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder <dd>Append the hold buffer to the current line.</dd>
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder <dd>Swap the contents of the hold buffer and the current line.</dd>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
5e605dc61ff9ec5724c319603905dc9b0dccc05fChristian Maeder<div class="directive-section"><h2><a name="InputSed" id="InputSed">InputSed</a> <a name="inputsed" id="inputsed">Directive</a></h2>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sed command to filter request data (typically <code>POST</code> data)</td></tr>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>InputSed <var>sed-command</var></code></td></tr>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr>
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder <p>The <code class="directive">InputSed</code> directive specifies the <code>sed</code> command
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder to execute on the request data e.g., <code>POST</code> data.
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<div class="directive-section"><h2><a name="OutputSed" id="OutputSed">OutputSed</a> <a name="outputsed" id="outputsed">Directive</a></h2>
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sed command for filtering response content</td></tr>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>OutputSed <var>sed-command</var></code></td></tr>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr>
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder <p>The <code class="directive">OutputSed</code> directive specifies the <code>sed</code>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder command to execute on the response.
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<p><span>Available Languages: </span><a href="/en/mod/mod_sed.html" title="English"> en </a> |
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder<a href="/fr/mod/mod_sed.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a></p>
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder<script type="text/javascript"><!--//--><![CDATA[//><!--
88ece6e49930670e8fd3ee79c89a2e918d2fbd0cChristian Maedervar comments_shortname = 'httpd';
88ece6e49930670e8fd3ee79c89a2e918d2fbd0cChristian Maedervar comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_sed.html';
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder(function(w, d) {
5e605dc61ff9ec5724c319603905dc9b0dccc05fChristian Maeder if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder d.write('<div id="comments_thread"><\/div>');
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder var s = d.createElement('script');
c29fabd288a7c6c0b46e134f70b48138aae9214aChristian Maeder s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
0678d323bee844db79af13113ae252546629a594Christian Maeder d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
c29fabd288a7c6c0b46e134f70b48138aae9214aChristian Maeder})(window, document);
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
36fcac4cf0f6a1f8a0fee696ac7f4b91d769843cChristian Maeder<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
0678d323bee844db79af13113ae252546629a594Christian Maederif (typeof(prettyPrint) !== 'undefined') {
e85b224577b78d08ba5c39fe9dcc2e53995454a2Christian Maeder prettyPrint();