Могу ли я прочитать http-ответ до определенной подстроки?

#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. Тогда, пожалуйста, обновите вопрос и добавьте соответствующие теги!