Find and Replace: Difference between revisions


No edit summary
 
(One intermediate revision by the same user not shown)
Line 12: Line 12:
$ find ./ -type f -exec sed -i 's/string1/string2/gI' {} \;
$ find ./ -type f -exec sed -i 's/string1/string2/gI' {} \;
</code>
</code>
=== 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
<code>
$ find /path/to/directory -type f -name '*.png' -exec rm -ri {} \;
</code>
'''Note:''' <code>rm -ri </code> for recursive/interactive deletion to be used in cases where you're unsure about deleting all .png files. <code>rm -rf</code> if you want to forcefully delete all files.


== Alternative methods ==
== Alternative methods ==

Latest revision as of 12:56, 2 August 2017

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