General Search
Ubuntu has mlocate but on other systems you will need to use find (which also will work on Ubuntu too),
Code Block |
---|
|
find /[folder] -name [filename] -print # find a file
find /[folder] -size +51024 -print # where 51024 is in Kilobytes which is approximately 5MB |
Search Inside of Multiple Files
Try to memorize this command,Also works in Solaris and Unix in general. Make sure to add trailing slash to [folder]. For example, "/opt/confluence/"
Code Block |
---|
|
find [folder] -type f | xargs -I{} grep -li "text" {}
find [folder] -type f # search the specified folder for all files, returns full path of each file
| xargs -I{} grep -li "[text]" {} # piped into xargs to grep for all files containing specified text ignoring case |
Replace
Search and Replace Single File using sed
See dedicated section on sed.
Search & Replace Inside of Multiple Files
...
Across Folders
The key is using xargs. Used Perl this here bue can easily be replaced with sed,
Code Block |
---|
|
find [folder] -type f | xargs -I{} grep -li "text" {} | xargs perl -pi -e 's/[text_to_search_for]/[text_to_search_for]/g'
find [folder] -type f # search the specified folder for all files, returns full path of each file
| xargs -I{} grep -li "[text]" {} # piped into xargs with to grep for all files containing specified text ignoring case
| xargs perl -pi -e 's/[text_to_search_for]/[text_to_replace_with]/g' # pipe list of files and using perl search and replace with specified text |