Предполагая, что все файлы без расширения .html
вообще не имеют расширения, вот простой сценарий bash для достижения того, что вам нужно.
find . -type f ! -iname "*.html" -a ! -iname "*.htm" | while IFS= read -r file; do
head -1 "${file}" | if grep -q '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' ; then
mv "${file}" "${file}.html"
fi
done
Этот скрипт выполняет следующие действия в следующем порядке:
.html
. .html
.