Bestimmten Wert aus einer Datei holen

      Bestimmten Wert aus einer Datei holen

      habe versehen die Frage gelöscht

      Es gingt um die Frage, wie man aus einer 2 -zeiligen Textdatei ein Zeil ausschneidet

      id,name,stadt,url,strasse
      2,rose,hamburg,http://www.suseforum.de,softstr.

      hier sollte die url geholt werden

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „amiga1200“ ()

      Quick and dirty:

      Quellcode

      1. grep http DATEINAME | awk -F ',' '{print $3}'


      Greetz,

      RM
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K
      Ich breche mir die Finger, und du löscht das mit ein 1 Zeiler.

      Ein problem habe ich noch, wobei mir das schon echt peinlich ist, aber ich habe google gefragt, doch wenig verstanden, kenne mich besser in php aus.

      Ich habe die Url mit Anführungszeichen
      also print $url ergibt
      "http://www..."
      ich must hier noch die " weg bekommen die am anfang und am Ende sitzen,
      in php eine sache von 1 Sekunde : $st= replace('"',"",$st);

      ich gehe dann davon aus, das ich wget dann mit einer Variable fütter kann
      Wget $url?

      amiga1200 schrieb:


      Ich habe die Url mit Anführungszeichen
      also print $url ergibt
      "http://www..."
      ich muss hier noch die " weg bekommen die am anfang und am Ende sitzen,


      *Öhm* .... nö

      Quellcode

      1. wget http://suseforum.de/index.php
      2. --- snip ---
      3. index.php [ <=> ] 98,17K 512KB/s in 0,2s
      4. 2016-07-29 21:19:12 (512 KB/s) - »index.php« gespeichert [100531]
      5. md5sum index.php
      6. 5ee48662619ca27cdd44b2cbc043b2a9 index.php


      Und

      Quellcode

      1. wget "http://suseforum.de/index.php"
      2. index.php [ <=> ] 98,17K 525KB/s in 0,2s
      3. 2016-07-29 21:19:27 (525 KB/s) - »index.php« gespeichert [100531]
      4. md5sum index.php
      5. 5ee48662619ca27cdd44b2cbc043b2a9 index.php


      Greetz,

      RM

      P.S. Den (unbeabsichtigten?) Doppel-Thread habe ich fachgerecht entsorgt.
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K
      ich habe noch was übersehen, der Link ist leider
      "suse.de?a=25&b=1024&c=2024"
      das & mag wget nicht, die müssen in
      "&"
      übersetzt werden.
      also
      "suse.de?a=25"&"b=1024"&"c=2024"

      in diesen Fall müssen die " am Anfang und Ende auf jeden Fall weg, glaube ich jedennfalls

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „amiga1200“ ()

      amiga1200 schrieb:

      ich habe noch was übersehen, der Link ist leider
      suse.de?a=25&b=1024&c=2024
      das & mag weget nicht, die müssen in
      "&"
      übersetzt werden.
      also
      suse.de?a=25"&"b=1024"&"c=2024

      in diesen Fall müssen die " am Anfang und Ende auf jeden Fall weg.


      Nein, im Gegenteil, gerade dann sollte man die URL quoten ...

      Quellcode

      1. wget -c "http://suse.de?a=25&b=1024&c=2024"
      2. --2016-07-29 21:49:19-- http://suse.de/?a=25&b=1024&c=2024
      3. Auflösen des Hostnamens »suse.de (suse.de)« … 130.57.5.70
      4. Verbindungsaufbau zu suse.de (suse.de)|130.57.5.70|:80 … verbunden.
      5. HTTP-Anforderung gesendet, auf Antwort wird gewartet … 301 Moved Permanently
      6. Platz: https://www.suse.com/de-de/?a=25&b=1024&c=2024 [folgend]
      7. --2016-07-29 21:49:19-- https://www.suse.com/de-de/?a=25&b=1024&c=2024
      8. Auflösen des Hostnamens »www.suse.com (www.suse.com)« … 130.57.66.10
      9. Verbindungsaufbau zu www.suse.com (www.suse.com)|130.57.66.10|:443 … verbunden.
      10. HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
      11. Länge: nicht spezifiziert [text/html]
      12. Wird in »»index.html?a=25&b=1024&c=2024«« gespeichert.
      13. index.html?a=25&b=1024& [ <=> ] 167,94K 129KB/s in 1,3s
      14. 2016-07-29 21:49:22 (129 KB/s) - »index.html?a=25&b=1024&c=2024« gespeichert [171981]


      weil sonst die Shell das "&" als Steuerzeichen interpretieren würde.

      Greetz,

      RM
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K
      Lose in der Shel:

      Quellcode

      1. wget -c "http://suse.de?a=25&b=1024&c=2024"

      ist ok
      aber ein Script mit:

      Quellcode

      1. st='"http://suse.de?a=25&b=1024&c=2024"'
      2. echo $st # richtig angezeigt "http://suse.de?a=25&b=1024&c=2024" mit Hochkomma!
      3. wget -c $st

      ergibt Scheme missing.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „glako“ ()

      Hochkommata? Wozu?

      Shell-Script

      1. #!/bin/sh
      2. URL="http://suse.de?a=25&b=1024&c=2024"
      3. wget -c "$URL"


      Works for me.™

      Greetz,

      RM

      P.S. Das sind "double quotes" (= doppeltes Anführungszeichen, SHIFT+2)
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K
      Der URL in der Textdatei ist halt mit Hochkomma


      Quellcode

      1. st1= grep http nix | awk -F ',' '{print $7}'
      2. echo $st1 #
      ergibt "www.suse.de"
      um das zu simulieren schreibe ich

      Quellcode

      1. st2= '"www.suse.de"'

      jetzt ist st1 genau wie st2
      hier spinnt wget
      aber

      Quellcode

      1. st3= "www.suse.de"

      hier ist der String ohne Hochkomma und wget läuft durch

      Quellcode

      1. echo $st|sed 's/"//g' #
      haut die Hochkomma beim ausgeben raus
      aber ich brauche sowas wie

      Quellcode

      1. st = $st|sed 's/"//g'






      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „glako“ ()

      amiga1200 schrieb:

      Es gingt um die Frage, wie man aus einer 2 -zeiligen Textdatei ein Zeil ausschneidet

      id,name,stadt,url,strasse
      2,rose,hamburg,http://www.suseforum.de,softstr

      hier sollte die url geholt werden


      vs.

      amiga1200 schrieb:

      Der URL in der Textdatei ist halt mit Hochkomma


      Könntest Du Dich vielleicht für eine Version entscheiden?

      Und dann das Zeug genau so posten, wie es da steht (am besten in Code-Tags)?

      Wenn da irgendwas Vertrauliches drin steht, dann ändere von mir aus die Daten aber _NICHT_ die Sonder- und Trennzeichen.

      Greetz,

      RM
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K
      Das hast du recht, die url ist schon mit Hochkomma



      ich hatte mir zwar schon ein Befehl gebaut, aber der funktioniert mit ein String nicht

      Quellcode

      1. st='"regen"'
      2. echo $st # hier mit Hochkomma
      3. st2=$( echo $st|sed 's/"//g')
      4. echo $st2 # hier wie es sein sollte ohne Kochkomma
      5. Aber
      6. st= grep http quelle | awk -F ',' '{print $7}'
      7. echo $st # mit Hochkomma
      8. st2=$( echo $st|sed 's/"//g')
      9. echo $st2 # ist bei mir Leer


      quelle Datei

      Quellcode

      1. ID,stadt,vor,rio,golf,tom,URL,Bonn,titel,sta
      2. 2,"japn ",2016-02-12,2016-05-25,2016-03-12,0,"http://www.suse.de&a=25&b=3345&c=5504",3,15,0


      Das mit dem Quellcode funktioniert irgendwie nicht

      Edit (RM): Doch, tut es (wie man sehen kann)

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „amiga1200“ ()

      Quellcode

      1. ID,stadt,vor,rio,golf,tom,URL,Bonn,titel,sta
      2. 2,"japn ",2016-02-12,2016-05-25,2016-03-12,0,"http://www.suse.de&a=25&b=3345&c=5504",3,15,0


      Tja, und damit wird die "Herausschnibbelei" einfacher, weil man sich nicht auf die normalen Kommata als Trennzeichen für awk stürzen muss.

      Quellcode

      1. 2,"japn ",2016-02-12,2016-05-25,2016-03-12,0,"http://www.suse.de&a=25&b=3345&c=5504",3,15,0


      Dann nimmt man eben die Anführungszeichen als Trenner.

      Also:

      Quellcode

      1. grep http DATEINAME | awk -F '"' '{print $4}'
      2. http://www.suse.de&a=25&b=3345&c=5504


      Und fertich.

      Greetz,

      RM

      P.S.

      cut:

      Quellcode

      1. grep http DATEINAME | cut -d '"' -f4


      und (etwas eleganter?!)

      sed:

      Quellcode

      1. sed -n 's/.*"http/http/;s/".*//p' DATEINAME

      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K
      Vielen Dank für Deine Hilfe

      irgendwie mag wget meinen String nicht

      ich vermute:

      Quellcode

      1. st= grep http datei | awk -F ',' '{print $7}';


      haut ein Umbruch mit rein, obwohl die datei sauber ist.
      gebe ich aus:

      Quellcode

      1. echo $st
      2. echo "weiter"

      ist zwischen der url und weiter eine Leezeile
      wenn ich die variable st direkt der url füttere ist alles gut mit wget
      und bei echo auch keine leer Zeile

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „glako“ ()

      amiga1200 schrieb:


      ich vermute:
      st= grep http datei | awk -F ',' '{print $7}';

      Du vermutest falsch.

      Du willst nicht den Befehl sondern die _Ausgabe_ des Befehls als Variable haben.

      tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-5.html

      Und nochmal, Variablen quoten, vor allem, wenn Steuerzeichen drin sind.

      Und übrigens, ich schrieb, Du solltest bei Deinem Beispiel nicht die Sonderzeichen ändern, hast Du aber, diese Url

      Quellcode

      1. http://www.suse.de&a=25&b=3345&c=5504


      wäre ungültig, diese hier nicht.

      Quellcode

      1. http://www.suse.de?a=25&b=3345&c=5504


      Ohne die nötige Sorgfalt schießt man sich dann gerne mal selbst in Knie.

      Greetz,

      RM

      P.S.

      Quellcode

      1. awk -F ',' '{print $7}'


      Das hier gelesen?
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K