Frage von gili2345, 46

Nur eine Zahl aus datei ausgeben wenn die zahl variabel ist. Geht das?

Hallo ich lasse mir mit einer anki.sh datei in der

cd /root/Anki wget https://anki.com/de-de -O Anki.html -q cat -n Anki.html | perl -e '@line = <>; print $line[597]' >zeile598.txt

steht einen Quelltext runterladen und die zeile 598 ausgeben was auch funktioniert. In der zeile598.txt steht nun

598 179,99 €inkl. MwSt.

hierraus möchte ich mir nun nur die 179,99 in einer Datei die preis.txt heißt speichern lassen. Am besten wäre es wenn dies auch in der anki.sh passieren würde. Ich benütze übrigens einen Linux Debian Server.

Danke schon mal im vorraus. LG Gili2345

Expertenantwort
von guenterhalt, Community-Experte für Linux, 21

tcl bietet mit den Befehlen split elegante Möglichkeiten die Zahl, eingeschlossen in > und < zu selektieren.

#!/bin/bash
# \
exec tclsh "$0" "$@"
set list [ split $argv <> ]
puts [lindex $list 6]


wenn diesem Programm  die Zeile aus der html-Datei übergeben wird, dann wird die Zahl ( die, die jetzt 179,99 lautet ) ausgegeben.

./tcl-datei   <Zeile aus Anki.html> 

(wobei man das auch per Pipi ausführen kann)

Anmerkung:

Du scheinst Linux so zu benutzten wie das bei Windows üblich ist, alles wird als Administrator ( bei Linux root) ausgeführt.

Du solltest schnellstens so etwas vermeiden. root ist nicht als Benutzer vorgesehen und dann auch noch als Superuser ins Internet gehen, das ist das, was man niemals machen sollte, denn damit ist dein PC  nicht sicherer als ein Windows-PC.


Kommentar von gili2345 ,

Ok Danke habe das Programm auf einen eigenen Users verlagert

Antwort
von gili2345, 22

da steht 598 < span class="real">< span class="field-combined-price">< span data-locale='de_DE.UTF-8' class='de formatted-value field-final-price'>179,99 < span class="currency-symbol">€< span class="vat-disclaimer">inkl. MwSt. und nicht 598 179,99 €inkl. MwSt. drin.

und die 179,99 ist variabel.

Kommentar von Linuxhase ,

@gili2345

und die 179,99 ist variabel.

Dann mit diesem Script vielleicht:

#/bin/bash
# gili2345.sh
wget https://anki.com/de-de -O Anki$(date '+%d_%m_%Y_%H').html -q && \
cat Anki$(date '+%d_%m_%Y_%H').html | grep 'field-final-price' | head -n1 | awk -F '>' '{print $3}'|awk -F '<' '{print $1}'

Es dürfte ja reichen wenn Du maximal stündlich abfragst oder?

Linuxhase

Kommentar von gili2345 ,

Dankeschön

Kommentar von gili2345 ,

Ja Stündlich langt 1mal am Tag würde auch langen

Antwort
von Linuxhase, 7

Hallo

598 179,99 €inkl. MwSt.

hierraus möchte ich mir nun nur die 179,99 in einer Datei die preis.txt heißt speichern lassen.

so:

grep "598 179,99 €inkl. MwSt." zeile598.txt |awk '{print $2}'|sed 's/Â//g' > preis.txt

Linuxhase

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten