2

Я пытаюсь получить только первую строку вывода команды curl . (Извините, если это сбивает с толку)

Допустим, например, я бегу просто:

# curl http://localhost
<!-- This is the hidden line i want to grab. -->
<!DOCTYPE html>
<html>
<head>
..
..

Что делать, если мне нужна самая первая строка вывода, а именно:

<!-- This is the hidden line i want to grab. -->

Я пробовал такие вещи, но пока не повезло:

# curl http://localhost | head -n 1
# curl http://localhost | sed -n '1!p'

.. и т. д. Все дает мне мусор, как это:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0<!-- This is the hidden line i want to grab. -->
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (23) Failed writing body (173 != 1763)

Это не результат, как ожидалось, как указано выше:

<!-- This is the hidden line i want to grab. -->

Любые эксперты здесь, пожалуйста =(

1 ответ1

4

Этот так называемый мусорный вывод является в основном индикатором прогресса во время операции загрузки данных. Вы можете игнорировать это, так как по умолчанию он входит в стандартный поток ошибок, который игнорируется, поэтому в стандартный вывод выводится только соответствующая часть.

Вот тест:

$ curl http://example.com/ | head -n1 > example.html
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1270  100  1270    0     0   112k      0 --:--:-- --:--:-- --:--:--  124k
(23) Failed writing body
$ cat example.html 
<!doctype html>

Если вы все еще хотите отключить его, добавьте параметр -s для тихого режима или перенаправьте стандартный поток ошибок в /dev/null , например:

$ curl -s http://example.com/ 2> /dev/null | head -n1
<!doctype html>

Или используя подстановку команд:

head -n1 <(curl -s http://example.com/ 2> /dev/null)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .