Мне нужно создать код, в котором я беру все файлы в текущей директории, заканчивающиеся * .txt, * .jpg, * .conf. После того, как я соберу их, мне нужно проверить, содержат ли они определенную строку:
<?xml version="1.0" encoding="UTF-8"?>
, если они содержат следующую строку, тогда мне нужно переименовать их в *. xml.
Мой вопрос: Как мне проверить с помощью регулярного выражения в операторе if, если файл содержит заданный код регулярного выражения?
Мой текущий код:
ls *.txt *.data *.conf
for f in *.*
case $f in
*.txt)
if [[ "$(grep -q '<\?xml version="[0-9]*.[0-9]*" encoding=".*"\?>' *.txt) ]]; then
mv -- "$f" "${%f.txt].xml"
fi
;;
esac
done
ls
код для * .jpg) и * .conf) будет одинаковым. Любая помощь приветствуется.