On Fri, Oct 24, 2008, Mad Unix wrote: >i need your feedback about this command, it should find a string in >multiple html files in a directory and replace it with a different >string... > >find /dir -name "*.html" -exec sed -i 's/"old"/"new"/g' {} \; There are several tools that handle this type of things quite nicely. There is a simple script in Kernighan and Pike's book ``The Unix Programming Environment'' that does simple replacements, and is used as an example of writing shell scripts that fail gracefully when things go wrong. Ralf S. Engelschall's ``shtool'', the GNU Portable Shell Tool has a ``subst'' function that is more flexible in that it is quite easy to handle multiple ``sed'' expressions. Unlike the Kernighan and Pike scripts though, errors in expressions result in a zero length file so making copies is a good idea. MySQL also has a ``replace'' script that handles simple replacement, but unfortunately has the same name as the Kernighan and Pike script which was written at least a decade before MySQL so should probably have been name ``myreplace'' or something similar that did not conflict. Perl also has options to do in-place replacements, and can make backups of the files, which is also a nice feature. Bill -- INTERNET: bill at celestial.com Bill Campbell; Celestial Software LLC URL: http://www.celestial.com/ PO Box 820; 6641 E. Mercer Way Voice: (206) 236-1676 Mercer Island, WA 98040-0820 Fax: (206) 232-9186 War is the health of the state. -- Ralph Bourne