Wie kann nur die erste Zeile der Ausgabe des Befehls "curl" ausgegeben werden?

4042
夏期劇場

Ich versuche nur die erste Zeile der curlBefehlsausgabe zu erhalten. (Sorry, wenn das verwirrend ist)

Nehmen wir einmal an, ich führe einfach aus:

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

Was tun, wenn ich die erste Zeile der Ausgabe hier haben möchte,

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

Ich habe so etwas ausprobiert, aber noch kein Glück:

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

.. usw. Alles gibt mir Müll wie folgt:

 % 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) 

Es ist nicht die erwartete Ausgabe wie oben erwähnt:

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

Alle Experten hier bitte = (

2
Welche Art von Müll? Dies: `curl -s http://example.com/ | head -n1` sollte korrekt funktionieren, sofern Ihre Ausgabe nicht komprimiert ist. kenorb vor 8 Jahren 0
Die Frage wurde bearbeitet, um Sie wissen zu lassen, was die "Müllausgaben" bedeuten. Vielen Dank. 夏期劇場 vor 8 Jahren 0
Fügen Sie einfach den Parameter "-s" hinzu, um die Fortschrittsausgabe (Müll) stummzuschalten. Dies gilt weiterhin für stderr, sodass es nicht in der Datei gespeichert wird, wenn Sie es irgendwo umleiten. kenorb vor 8 Jahren 1

1 Antwort auf die Frage

4
kenorb

Diese so genannte Müllausgabe ist im Grunde eine Fortschrittsanzeige während des Betriebs des Herunterladens der Daten. Sie können dies grundsätzlich ignorieren, da der Standardfehlerstrom standardmäßig ignoriert wird und nur der relevante Teil in der Standardausgabe ausgedruckt wird .

Hier ist der Test:

$ 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> 

Wenn Sie es dennoch stummschalten möchten, fügen Sie -sParameter für den stillen Modus hinzu oder leiten Sie den Standardfehlerstrom um /dev/null, zum Beispiel:

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

Oder mit Befehlssubstitution:

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