The title pretty much says it all . Here is a quick one liner, using multiple tools, to look for files in a directory, search for certain content in them and replace them with other content
find -type f | xargs grep -l ORIGINAL_CONTENT | xargs perl -p -i -e 's/ORIGINAL_CONTENT/NEW_CONTENT/g'
You can theoretically take out the grep (second command) and directly pipe the find output to perl and get the same outcome.
Going over list of the options used
- “-type f” lists all objects of type file in the directory (and sub directories)
- “-l” lists the names of the files (with relative path) which have the text ORIGINAL_CONTENT in them
- “-p” forces perl to loop through requests. In this case files
- “-e” tells perl that the next argument is a perl statement
- “-i” tells perls to edit the file in place (i.e. no need for an output file)