#http #curl
#http #curl
Вопрос:
Я использую http GET для массивных (наибольший из них 500 M) таблиц данных. Из этих таблиц мне нужны данные только до подстроки «DATA =». Возможно ли прекратить чтение данных, когда эта подстрока была получена?
Ответ №1:
Эта командная строка записывает загрузку в файл с помощью tee до тех пор, пока grep не завершит работу из-за совпадения:
$ curl http://example.com/HUGE | tee keeper| grep -q "quit immediately once found"
Если это нашло подстроку:
$ echo $?
$ 0
Если это не так:
$ echo $?
$ 1
Эта командная строка работает, потому что grep -q документирован для:
-q, --quiet, --silent
Quiet; do not write anything to standard output. Exit immediately with
zero status if any match is found, even if an error was detected. Also see
the -s or --no-messages option.
Комментарии:
1. Спасибо за ваш ответ, но, возможно, мой вопрос был плохо отформатирован, поскольку я фактически очищаю веб-страницы с помощью scrapy, и мне нужно знать, как «сообщить scrapy» (например, в заголовках http-запроса), чтобы он читал до определенной подстроки. Я сомневаюсь, что это невозможно, но меня попросили разобраться.
2. Тогда, пожалуйста, обновите вопрос и добавьте соответствующие теги!