Assumindo que todos os arquivos .html
que não são extensões não têm nenhuma extensão, aqui está um script simples para realizar o que você precisa.
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
Este script faz o seguinte, na ordem:
- Localiza recursivamente todos os arquivos no diretório atual e nos diretórios filhos que não possuem a extensão
.html
. - Verifica se a primeira linha dos arquivos encontrados é a string que você forneceu.
- Se a primeira linha corresponder, o arquivo será renomeado para incluir a extensão
.html
.