2017-08-17 2 views
0
#!/bin/sh 
    page=`curl -sL xxx.com` 
    url=`$page | grep -q "http:\/\/(\w.*?)\/"` 
    echo $url 
    echo $? 

Da ist meine Bash. Aber es heraus:Wie benutze ich curl grep, um HTML-Inhalt zu bekommen?

line 3: <html><head><title>??????????⹤??</title></head><body><iframe: No such file or directory 

0 

Wie man das Problem löst? Vielen Dank.

Antwort

0

Der No such file or directory Fehler tritt auf, da Sie versuchen, das Ergebnis von curl -sL xxx.com direkt auszuführen. Ich denke, was Sie wollten, ist grep zu verwenden, um das Ergebnis davon zu verarbeiten. Eine Option ist echo $page und wird zur Verarbeitung an grep übergeben.

Und es gibt zwei Optionen für grep hinzugefügt werden müssen, so ändern Sie Ihre url zu,

url=`echo $page | grep -oP "http:\/\/(\w.*?)\/"` 

Kurze Erklärung,

  • -P: Interpretieren MUSTER als Perl reguläre Ausdrücke seit \w enthalten im Muster
  • -o: extrahieren Sie nur das Muster, das dem Perl Regex
  • entspricht
  • -q: keine Notwendigkeit -q zu erlassen, da die Ausgabe unterdrückt werden würde, das ist, warum Sie nichts für Ihre $url
erhalten
Verwandte Themen