NEWS
[gelöst] Dateigröße von ls -l ermitteln
-
Hi,
ich bin gerade damit beschäftigt, meinen Roborock S50 für mehrere Etagen fit zu machen. Dafür habe ich die entsprechenden Karten gespeichert und pro Etage eine Datei erzeugt, damit ich prüfen kann welche Etage geladen ist. Die Prüfung mache ich mit einen "ls -l" und checke welche Datei da ist. Nun kommt es aber vor, dass der Robby mal mit dem Hardware Knopf gestartet wird und die Karte neu erzeugt wird.
Dies kann man an der Größe der Datei "last_map" erkennen.Nun zu meinem Problem: Ich habe die Ausgabe es "ls -l" in einem Datenpunkt:
total 904-rw-r--r-- 1 root root 43 Sep 26 08:35 ChargerPos.data-rw-r--r-- 1 root root 5682 Sep 26 08:27 PersistData_1.data-rw-r--r-- 1 root root 5628 Sep 26 08:00 PersistData_2.data-rw-r--r-- 1 root root 378 Sep 26 08:35 RoboController.cfg-rw-r--r-- 1 root root 73 Sep 26 08:36 Rotater.cfg-rw-r--r-- 1 root root 44 Sep 26 08:35 StartPos.data-rw-r--r-- 1 root root 289 Sep 26 08:00 Update.pkg.inf-rw-r--r-- 1 root root 141412 Sep 26 08:27 appproxy.map-rw-r--r-- 1 root root 149 Sep 26 08:00 apptimer.cfg-rw-r--r-- 1 root root 26 Sep 26 08:00 country_infodrwxr-xr-x 2 root root 4096 Sep 9 14:00 devtest-rw-r--r-- 1 root root 1 Sep 26 08:00 lab.cfg-rw-r--r-- 1 root root 564664 Sep 26 08:27 last_map-rw-r--r-- 1 root root 46 Sep 26 08:01 lds_info.txt-rw-r--r-- 1 root root 388 Sep 26 08:00 localtimedrwxr-xr-x 2 root root 4096 Sep 8 19:15 mapdrwxr-xr-x 2 root root 4096 Sep 9 14:00 noupload-rw-r--r-- 1 root root 0 Sep 26 08:00 ogeschoss-rw-r--r-- 1 root root 100352 Sep 26 08:27 robot.dbdrwxr-xr-x 205 root root 28672 Sep 26 08:27 rrlog-rw-r--r-- 1 root root 82 Sep 26 08:00 slam_info.cfgdrwxr-xr-x 2 root root 4096 Sep 9 14:14 sounds-rw-r--r-- 1 root root 13 Sep 26 08:00 timezone
Nun würde ich gerne die Dateigröße der "last_map" in eine Variable oder einen Datenpunkt schreiben. Damit man überprüfen kann, ob es sich immer noch um die richtige Karte handelt. Wie kann ich das aus dem Text mittels Script filtern?
Danke schon mal für Eure Unterstützung
Gruß
Robert
-
@Rookie50 mit dem befehl du müßte das funktionieren
-
@liv-in-sky Danke für den Vorschlag, dass ist zwar ein anderer Ansatz und ich muss 2 verschiede Befehle auf den Robby machen, aber es sollte seinen Zweck erfüllen.
Wenn alles läuft werde ich mich melden.
Gruß
Robert
-
@Rookie50 was brauchst du genau - einen ls befehl der immer die größe mit angibt ? hab das ganze noch nicht gecheckt - beschreib doch nochmal -
ls -l | grep README.md | awk '{print $5}'
zeigt halt immer die größe dieser datei (README.md) an
oder möchtest du wissen, wie du die variable in einen datenpunkt schreibst?
-
Ich schreibe die Ausgabe von ls -l in einen Datenpunkt. Diesen Datenpunkt wollte ich nun zerlegen und die Größe der Datei last_map ermitteln und in einen neuen Datenpunkt oder eine Variable schreiben. Das ist alles
Gruß
Robert
-
@Rookie50 dass geht mit dem letzten post auch - ist einfacher als die daten nochmal mit einem javascript zu zerlegen - dazu müßtest du wohl über regex gehen und den "string" durchsuchen
meiner meinung nach ist eine zweite "ls" oder eine "du" abfrage definitiv einfacher
-
@Rookie50 sagte:
Ausgabe von "ls -l" in einem Datenpunkt:
Sind die Zeilenumbrüche nicht mehr vorhanden oder nur nicht zu sehen ?
-
@Rookie50 mit den daten die du gepstet hast ginge dieses blockly - aber paul53 hat wahrscheinlich eine schnellere lösung
-
@paul53 said in Dateigröße von ls -l ermitteln:
Zeilenumbrüche nicht mehr vorhanden oder
Die scheinen nicht mehr da zu sein, wenn ich es in einen editor kopiere ist es eine Zeile
-
@Rookie50 sagte:
ist es eine Zeile
Dann versuche es mal so:
const idLs = '...'; const idSize = '...'; var txt = getState(idLs).val; var pos = txt.indexOf('last_map'); txt = txt.substring(0, pos + 8); var arr = txt.split(' '); pos = arr.indexOf('last_map'); setState(idSize, parseInt(arr[pos - 4]), true);
-
Vielen Dank an Euch, ich habe den Ansatz von @liv-in-sky verfolgt und es wie folgt gelöst:
Jetzt habe ich die Größe der Datei in einem Datenpunkt stehen und den weiter verarbeiten.
-
-
@liv-in-sky sagte:
statt den "aktualisiere" blockly's wäre "steuere" besser
Nein, da der Wert nicht gesendet, sondern nur angezeigt wird, ist "aktualisiere" korrekt.
-
Ihr seit spitze