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

    Image 4.png


  • @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

    Image 7.png

    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

    Image 9.png


  • @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:

    76343a31-0fb8-46e9-9a6f-479e2ae6d217-image.png

    Jetzt habe ich die Größe der Datei in einem Datenpunkt stehen und den weiter verarbeiten.


  • @Rookie50 bin mir nicht sicher aber ich glaube statt den "aktualisiere" blockly's wäre "steuere" besser - vielleicht kann @paul53 das bestätigen oder negieren


  • @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 😄

Suggested Topics

  • 14
  • 31
  • 4
  • 2
  • 7
  • 7
  • 7
  • 5

1.6k
Online

37.0k
Users

42.7k
Topics

592.8k
Posts