Variable bereich aus einer Datei auslesen ?? bitte um hilfe
-
- Interessierter
- Beiträge: 41
- Registriert: Freitag 27. August 2004, 00:50
Variable bereich aus einer Datei auslesen ?? bitte um hilfe
Hallo ,
Sorry wenn ich hier falsch bin, aber ich wusste nicht wohin ich mein problem posten soll.
Ich würde gerne aus einer Datei einen variablen bereich auslesen(nur den datum,Rot markiert), ich weiß aber leider nicht wie ich das machen soll. Hab schon mit "grep" versucht, aber dann wird die ganze zeile ausgelesen.
Inhalt der datei:
<table>
<tr><td>current time:</td><td>Sat Oct 16 10:25:02 2004
</td></tr>
</table>
</body>
</html>
bin für jede hilfe dankbar !
Gruß
Keks88
Sorry wenn ich hier falsch bin, aber ich wusste nicht wohin ich mein problem posten soll.
Ich würde gerne aus einer Datei einen variablen bereich auslesen(nur den datum,Rot markiert), ich weiß aber leider nicht wie ich das machen soll. Hab schon mit "grep" versucht, aber dann wird die ganze zeile ausgelesen.
Inhalt der datei:
<table>
<tr><td>current time:</td><td>Sat Oct 16 10:25:02 2004
</td></tr>
</table>
</body>
</html>
bin für jede hilfe dankbar !
Gruß
Keks88
-
- Senior Member
- Beiträge: 5071
- Registriert: Dienstag 18. September 2001, 00:00
-
- Interessierter
- Beiträge: 41
- Registriert: Freitag 27. August 2004, 00:50
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
-
- Einsteiger
- Beiträge: 369
- Registriert: Samstag 29. Mai 2004, 01:50
oder:
Gruß
Code: Alles auswählen
VAR=`cat Datei |grep current|cut -d e> e -f5`
Zuletzt geändert von racker am Samstag 16. Oktober 2004, 15:20, insgesamt 1-mal geändert.
-
- Interessierter
- Beiträge: 41
- Registriert: Freitag 27. August 2004, 00:50
-
- Einsteiger
- Beiträge: 369
- Registriert: Samstag 29. Mai 2004, 01:50
-
- Interessierter
- Beiträge: 41
- Registriert: Freitag 27. August 2004, 00:50
Hallo racker,
will immer noch nicht !
Ich habe folgendes gemacht !
popup ist die datei wo die datum drine steht.
dann kommt aber die folgende fehlermeldung:
-sh: cannot create e: Read-only file system
mit Read-only ist klar(ist ein Squashfs File system), aber wo mus ich den ausgabe pfad eingeben und warum will er den komata als dateinamen nehmen ?
Gruß
will immer noch nicht !
Ich habe folgendes gemacht !
Code: Alles auswählen
VAR=`cat /tmp/popup |grep current|cut -d e> e -f5`
dann kommt aber die folgende fehlermeldung:
-sh: cannot create e: Read-only file system
mit Read-only ist klar(ist ein Squashfs File system), aber wo mus ich den ausgabe pfad eingeben und warum will er den komata als dateinamen nehmen ?
Gruß
-
- Einsteiger
- Beiträge: 369
- Registriert: Samstag 29. Mai 2004, 01:50
Ich kann jetzt nur mal vermuten.
Du verbindest dich über Windows-Telnet mit der Box?
Wenn ja, dann müssen die Hochkommata um e> e mit
der Shift und der # -Taste eingegeben werden. Also '>'
Ansonsten würde ich vor dem Befehl ins /tmp Verzeichnis wechseln.
Die Ausgabe kannst du dir dann mit echo $VAR anschauen.
Gruß
Du verbindest dich über Windows-Telnet mit der Box?
Wenn ja, dann müssen die Hochkommata um e> e mit
der Shift und der # -Taste eingegeben werden. Also '>'
Ansonsten würde ich vor dem Befehl ins /tmp Verzeichnis wechseln.
Die Ausgabe kannst du dir dann mit echo $VAR anschauen.
Gruß
-
- Interessierter
- Beiträge: 41
- Registriert: Freitag 27. August 2004, 00:50
Hi racker,
Sorry , aber geht immer noch nicht.
Ja, ich habs immer mit dem Windows telnet versucht, aber jetzt habe ich es mal als Shelldatei gestartet, läuft aber trotzdem nicht.
Als fehlermeldung kommt " d>: applet not found " wieder
So habe ich es gemacht:
Ich habe dir mal HIER die Popup datei angehängt. Kannst ja mal versuchen ob es bei dir läuft.
Gruß
Keks88
Sorry , aber geht immer noch nicht.
Ja, ich habs immer mit dem Windows telnet versucht, aber jetzt habe ich es mal als Shelldatei gestartet, läuft aber trotzdem nicht.
Als fehlermeldung kommt " d>: applet not found " wieder
So habe ich es gemacht:
Code: Alles auswählen
#!/bin/sh
wget -O /tmp/popup http://127.0.0.1/cgi-bin/status
VAR=`cat /tmp/popup |grep current|cut -d e> e -f5`
echo $VAR
exit
Gruß
Keks88
Zuletzt geändert von keks88 am Sonntag 17. Oktober 2004, 15:06, insgesamt 1-mal geändert.
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
Code: Alles auswählen
expr substr "$(cat /tmp/popup | grep current )" 31 19
Schon gelesen ???
ENIGMA-DOC
ENIGMA-DOC
-
- Einsteiger
- Beiträge: 369
- Registriert: Samstag 29. Mai 2004, 01:50
Wie bereits geschrieben: Deine Hochkommata um > sind falsch.
Den Link würde ich an deiner Stelle entfernen.
Gruß
Code: Alles auswählen
#!/bin/sh
wget -O /tmp/popup http://127.0.0.1/cgi-bin/status
VAR=`cat /tmp/popup |grep current|cut -d'>' -f5`
echo $VAR
exit
Gruß
-
- Interessierter
- Beiträge: 41
- Registriert: Freitag 27. August 2004, 00:50
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
Code: Alles auswählen
expr substr "$(cat /tmp/popup | grep current )" 31 19
cat /tmp/popup gibt den Inhalt der Datei popup aus, diese Ausgabe wird weiter geleitet zu grep, das die Zeile sucht, in der current steht.
expr mit der option substr extrahiert aus dem so gewonnenen Ausdruck, $(cat /tmp/popup | grep current), eine Zeichenkette, die mit dem 31. Zeichen beginnt und 19 Zeichen lang ist.
Schon gelesen ???
ENIGMA-DOC
ENIGMA-DOC
-
- Einsteiger
- Beiträge: 369
- Registriert: Samstag 29. Mai 2004, 01:50
-
- Interessierter
- Beiträge: 41
- Registriert: Freitag 27. August 2004, 00:50
Alles klar, essu ! Danke nochmal für eure hilfe !
Da ich ja schon hier bin, hätte ich gleich noch ne frage.
Kann man im shellscript mit Dezimalzahlen rechnen ?
Ich würde gerne Bytes in Kbytes umrechen, aber ich bekomme immer nur Ganzzahlen als ergebnis und die nachkommastellen werden nicht angezeigt. Habt ihr ne Idee, wie man das lösen könnte ?
Gruß
Keks88
Da ich ja schon hier bin, hätte ich gleich noch ne frage.
Kann man im shellscript mit Dezimalzahlen rechnen ?
Ich würde gerne Bytes in Kbytes umrechen, aber ich bekomme immer nur Ganzzahlen als ergebnis und die nachkommastellen werden nicht angezeigt. Habt ihr ne Idee, wie man das lösen könnte ?
Gruß
Keks88
Zuletzt geändert von keks88 am Mittwoch 20. Oktober 2004, 03:06, insgesamt 2-mal geändert.
-
- Interessierter
- Beiträge: 41
- Registriert: Dienstag 4. Februar 2003, 23:44
Ich würde auch lieber den code mit der cut -f Funktion wählen, sonst kommst Du ins Rudern, wenn z.B. der 1. Oktober wäre da dann die länge nicht mehr hinhaut. Währen Du bei der cut -f Variante nach Feldern gehst, wobei als Feldtrenner > gewählt wurde. Was die Rechnerei betrifft, währe es besser Du benutzt awk für die Geschichte.
-----
Grüße aus 1xxxx
Grüße aus 1xxxx
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
BTW: fcut (und erst recht awk, trotz kerlimanns einsatz) ist nicht in allen images enthalten, auch am 1. Oktober wird es mit der Skriptzeile kein Problem geben, allerdings beim Wechsel auf fünfstellige Jahreszahlen(das sog. 10k-Problem )ankn99 hat geschrieben:Ich würde auch lieber den code mit der cut -f Funktion wählen, sonst kommst Du ins Rudern, wenn z.B. der 1. Oktober wäre da dann die länge nicht mehr hinhaut. Währen Du bei der cut -f Variante nach Feldern gehst, wobei als Feldtrenner > gewählt wurde. Was die Rechnerei betrifft, währe es besser Du benutzt awk für die Geschichte.
Mit expr liessen sich schliesslich auch noch die delimiter finden und die Gesamtlänge des Strings berechnen
Schon gelesen ???
ENIGMA-DOC
ENIGMA-DOC
-
- Developer
- Beiträge: 457
- Registriert: Sonntag 23. März 2003, 00:39
ich bin auch immer ein kandidat für den "most useless use of cat" award, deswegen kann ich ja darauf hinweisen, dass es auch einfacher mitessu hat geschrieben:Code: Alles auswählen
expr substr "$(cat /tmp/popup | grep current )" 31 19
Code: Alles auswählen
$(grep current /tmp/popup)
wobei die $() konstruktion IMHO bash spezifisch ist, portabler wäre
Code: Alles auswählen
`grep current /tmp/popup`
ciao,
ChakaZulu
-
- Tuxboxer
- Beiträge: 2452
- Registriert: Montag 21. Oktober 2002, 10:04
Tja, den Titel musst du jetzt wohl mir überlassen.ChakaZulu hat geschrieben:ich bin auch immer ein kandidat für den "most useless use of cat" award[...]
Schon gelesen ???
ENIGMA-DOC
ENIGMA-DOC
-
- Interessierter
- Beiträge: 41
- Registriert: Freitag 27. August 2004, 00:50
Bytes in KBytes umrechnen
Ich habe jetzt eine Lösung gefunden:
ergebnis : 567.456 KBytes
Code: Alles auswählen
a=$(expr 567456 / 1000) ; b=$(expr 567456 % 1000) ; echo $a.$b KBytes