We are converting all the static html pages in our codebase into php pages. The first step would be to change all the .html file extension to .php (which I already did). The second step would be to update all the links within each of those html pages to point to new php pages.
(for instance, inside index.php i have links to both contact.html and about-us.html. Now since we have replaced every .html file extension to .php, we need to change contact.html to contact.php, and likewise, about-us.html to about-us.php).
what i want to do now is to search for a particular string across multiple files. (search for “contact.html” inside many files, such as index.php, index2.php, index3.php, etc etc..) after that, replace all “contact.html” in all those files with “contact.php”.
I am not familiar with unix command line, and i so far have seen other people’s similar questions here in the forum but not quite understand which one could help me achieve what i want. I’m using cygwin and if possible i need to solve this without perl script since i dont have it installed. i need to try using either sed, grep, find, or anything else.
So, if any of you think that this is a duplicate please point me to a relevant post out there. thanks for your time.
Try this:
find . -name '*.html' -exec sed -i 's/\.html/\.php/g' "{}" \;It will find all files in the current and subdirectories that end in
.html, and runsedon each of them to replace.htmlwith.phpanywhere it appears within them.See http://content.hccfl.edu/pollock/unix/findcmd.htm for more details.