Linux: find a string recursively within files
by Ali on Feb.14, 2009, under Linux
Well… there are several ways of doing this in Linux and Unix:
find /<path> 'filename.extension> (wildcard allowed)
find /<path> *.* | xargs grep <string>
find . -type f -exec grep "<string>" {} \; -print
grep -r "<string>" /<path>/<filename>
You can also add a ‘>> <filename>’ (no quotes) to the end to write the output to a file so you can take a look at it later.
To recursively find and replace a string within files:
find . -type f | xargs perl -pi~ -e 's/<current string>/<new string>/g;'
sed -i '<current string>/from/to/<new string>' `find . -name \*.ext`
Put `find . -name \*.ext` in a double quote and it should work for filenames with space as well.
If you want to find and delete files or directories recursively, look here.
To the extent possible under law, the creator has waived all copyright and related or neighboring rights to this work.
February 14th, 2009 on 4:18 PM
[…] find and replace strings within files look here. :delete recursively, find recursively 1 comment for this […]