Мне нужна ваша помощь с коротким сценарием bash. У меня есть папка, содержащая около 150 000 (!) Xml-файлов. Мне нужен скрипт, который извлекает все эти файлы, содержащие указанную строку. Сценарий должен работать как можно быстрее, потому что сценарий должен использоваться очень часто.bash script получить файлы в подпапках, которые содержат специальную строку
Мой первый подход был следующим, используя Grep:
for f in temp/*
do
if grep "^.*the line which should be equal.*$" "$f"
then
echo "use this file"
else
echo "this file does not contain the line"
fi
done
Этот подход работает, но это занимает слишком много времени. Кто-нибудь знает более быстрый подход? Если другой язык сценариев является лучшим выбором, это также нормально.
С наилучшими пожеланиями, Майкл
Всегда избегать исполняющих «командной за файл», если это вообще возможно; это неизбежно медленнее, чем наличие одного командного процесса во многих файлах. –