2017-10-25 4 views
1

Ich habe Probleme damit, das zu tun, was ich möchte.Curl/sed-Befehl verarbeitet Eingaben nicht korrekt

read -p "URL to read: " U 

read -p "Word to fin: " O 

read -p "Filename: " F 

curl -O $U | sed "s/\<$O\>/\*$O\*/g" > $F.txt 

Also im Grunde, was ich will, ist curl zu verwenden, um eine .txt Datei von einer URL zu bekommen, dann sortiert durch sie das Wort von der Benutzereingabe festgelegt zu finden. Markieren Sie dann alle diese Wörter mit einem * und fügen Sie sie in eine vom Benutzer angegebene Datei ein. Fast der exakt gleiche Code funktioniert unter Linux, aber das funktioniert nicht auf meinem Mac. Jeder hat eine Idee?

Antwort

1

Zwei Fragen:

  • -O macht curl speichern Sie die heruntergeladene Datei, nicht ausgegeben es auf stdout.
  • Wortgrenze Metazeichen \< und \> sind ein GNU extension. Unter BSD sed können Sie stattdessen [[:<:]] und [[:>:]] verwenden.

Dies sollte auf OSX arbeiten:

curl "$U" | sed "s/[[:<:]]$O[[:>:]]/\*$O\*/g" > $F.txt 
+1

Oh, ok. Das Problem, dass ich nicht hatte, dass ich nicht spezifiziert habe, ist, dass es immer noch die gesamte http: //....../ txt Datei in der neuen Datei speichert. Es findet nicht die Wörter, die ich versuche zu finden. Vielen Dank toh, das half! – Theskils

Verwandte Themen