[gelöst] Dateigröße in Variable?
- Jerry
- Beiträge: 665
- Registriert: 01.09.2006 08:36:45
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: /home
[gelöst] Dateigröße in Variable?
Moin,
Ich stehe grad auf dem Schlauch, dehalb meine Frage:
Wie kann man die Dateigröße welche mit ls -la ausgegeben wird mittels sed in eine Variable holen?
Danke im voraus
Wolf
Ich stehe grad auf dem Schlauch, dehalb meine Frage:
Wie kann man die Dateigröße welche mit ls -la ausgegeben wird mittels sed in eine Variable holen?
Danke im voraus
Wolf
Zuletzt geändert von Jerry am 27.11.2007 11:14:35, insgesamt 1-mal geändert.
Selbst der längste Weg beginnt mit dem ersten Schritt Lao Tse (~ 600-400 v. Chr.)
Es geht auch so wie du dir das vorstellst, ich gebe dir aber mal einen einfacheren Lösungsansatz:
Code: Alles auswählen
size=`stat -c %s "$filename"`
-
- Beiträge: 3472
- Registriert: 30.11.2005 10:32:22
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wald
Auch kein cut oder awk?
Code: Alles auswählen
ls -l Dateiname | awk '{ print $5 }'
ls -l Dateiname | cut -d ' ' -f5
Wie stehts denn dann mit awk?
Und wenns dann doch unbedingt sed sein muss, dann bleibt nur noch so was:
Code: Alles auswählen
size=`ls -la "$filename" | awk '{print $5}'`
Code: Alles auswählen
size=`ls -la "$filename" | sed -re 's/^([^ ]+[ ]+){4}([^ ]+)[ ]+.*$/\2/'`
- Jerry
- Beiträge: 665
- Registriert: 01.09.2006 08:36:45
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: /home
Das geht nicht, liegt aber an meiner sh (msh unter busybox). Unter bash gehts. Trotzdem Danke!Spasswolf hat geschrieben:Auch kein cut oder awk?Code: Alles auswählen
ls -l Dateiname | awk '{ print $5 }' ls -l Dateiname | cut -d ' ' -f5
Das folgende würde gehen aber tr ist fehlerhaft in der busybox.
Code: Alles auswählen
ls -l /etc/bash.bashrc | tr -s " " | cut -d " " -f 5
Wolf
Selbst der längste Weg beginnt mit dem ersten Schritt Lao Tse (~ 600-400 v. Chr.)
- Jerry
- Beiträge: 665
- Registriert: 01.09.2006 08:36:45
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: /home
Danke das hat funktioniert.markus_b hat geschrieben: Und wenns dann doch unbedingt sed sein muss, dann bleibt nur noch so was:Code: Alles auswählen
size=`ls -la "$filename" | sed -re 's/^([^ ]+[ ]+){4}([^ ]+)[ ]+.*$/\2/'`
Gruß
Wolf
Edit: Mir ist meine alte Lösung wieder eingefallen. tr durch sed ersetzen udn schon gehts auch.
Code: Alles auswählen
ls -la /etc/passwd | sed s/" "*/" "/g | cut -d " " -f6
Selbst der längste Weg beginnt mit dem ersten Schritt Lao Tse (~ 600-400 v. Chr.)