Find and Replace


Revision as of 12:55, 2 August 2017 by Wikiadmin (talk | contribs)

Find and Replace

With SSH access, you can replace a string of text within multiple files within a single command. For example, to update every instance of your phone number in all of your files, you would do the following:

$ find ./ -type f -exec sed -i 's/987-654-3210/555-789-0210/g' {} \;

For insensitive search and replace of the string:

$ find ./ -type f -exec sed -i 's/string1/string2/gI' {} \;

Find and Remove

The find comand is also useful if you want to remove specific files from a directory. Such as only files ending in .png within an images directory

$ find /path/to/directory -type f -name '*.png' -exec rm -ri {} \; Note: rm -ri for recursive/interactive deletion to be used in cases where you're unsure about deleting all .png files. rm -rf if you want to forcefully delete all files.


Alternative methods

sed

$ cd /path/to/your/folder
$ sed -i 's/foo/bar/g' *

All occurrences of the string "foo" will be replaced with the string "bar".

Perl

perl -pi -w -e 's/search/replace/g;' *.php

 -e means execute the following line of code.
 -i means edit in-place
 -w write warnings
 -p loop