Find And Replace On All Files In And Below A Directory

9th October 2008 - 1 minute read time

The following shell command uses the find function to find all files in or below the current directory that have the extension php. It then passes each file found onto a sed command which then replaces all <? with the longer <?php version.

find . -name '*.php' -exec sed -ie 's#<?#<?php#' {} \;

The -name argument in find will look at the base of the file name, that is, the file without any directory path. The -exec command is used to pass each file found onto another command, in this case sed is used.

Comments

Permalink

A quick note: if you are searching to replace a link to a directory ie text/documents to text/document/new you must escape the / char so for the above example the command would be:

find . -name '*.php' -exec sed -ie 's#text//documents#text//document//new#' {} \;

jerror (Thu, 06/09/2011 - 21:18)

Add new comment

The content of this field is kept private and will not be shown publicly.