14
Feb/091
Feb/091
Linux: find a string recursively within files
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.
Related posts:
- Linux: Find and delete files/directories recursively in Linux
- Linux: vsftpd and symbolic links
- Linux: User management
- Linux: df: cannot read table of mounted file systems
- Linux: Copy files between Linux Servers with scp