'Sed' not working on result of 'find' with multiple parameters
<p>I'm trying to do a find and replace function, finding files which match a criteria then find/replace text within them.</p>

<p>Find statement (works find and returns list of files):</p>

<p><code>find / -type f -name "*.properties" -o -name "*.xml" -not \( -path '/tmp/*' -o -path '/var/tmp/*'  \)</code> </p>

<p>Sed find/replace: </p>

<pre><code>sed -i 's/find/replace/g' {} \;
</code></pre>

<p>Putting together:</p>

<pre><code>find / -type f -name "*.properties" -o -name "*.xml" -not \( -path '/tmp/*' -o -path '/var/tmp/*'  \) -exec sed -i 's/10\.32\.19\.156/10.32.19.165/g' {} \;
</code></pre>

<p>However this does not seem to work. Removing some 'find' parameters causes it to work, for example this works:</p>

<pre><code>find / -type f -name "*.properties" -exec sed -i 's/10\.32\.19\.156/10.32.19.165/g' {} \;
</code></pre>

<p>How can I get sed to work with the extended 'find' parameters?
Currently these two 'find' statements return exactly the same result in a test folder with only 2 files:</p>

<pre><code>find /var/tmp/ipreplace/ -type f -name "*.properties"

find /var/tmp/ipreplace/ -type f -name "*.properties" -o -name "*.xml" -not \( -path '/tmp/*' -o -path '/var/tmp/*'  \)
</code></pre>