txt Datei bearbeiten

Buschdieb

Grünschnabel
Hallo Leute!

Ich bin Linux Einsteiger und habe ein kleines Problemchen.

Mit dem Kommando "ls -s -R > vz2.txt" habe habe ich im Verzeichnis "/" alles ausgelesen. Die erhaltenen Informationen wurden mir sofort in die vz2.txt eingetragen.

Vor dem Inhalt des Verzeichnisses oder der Datei steht jetzt immer die Größe in Blöcke zu 1024 Bytes je Block. (Müsste eine Spalte sein.)

Nun möchte ich, dass er nur die Dateien und Verzeichnisse die größer sind als eine angegebene Größe in die vz2.txt eingetragen werden.

Ich denke nicht das man das mit einem Kommando machen kann, sondern das man dazu ein kleines Script benötigt das die vz2.txt mit grep und sed bearbeitet. Wie mache ich das?

Mit "grep 0 \? -n vz2.txt" zeigt er mir alle Zeilen an in dem die 0 vorkommt. Allerdings auch die 100 oder die 90. Er soll mir aber nur die Zeilen anzeigen die wirklich 0 Blöcke groß sind.

Hat jemand eine Idee?

Vielen Dank!
 
Eigentlich ganz einfach hier der befehl als beispiel
Dateien die größer als 100000k sind:

Ich hab das ganze noch ein wenig angepasst damit das Ergebniss besser lesbar ist

Code:
 find / -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
 
Hallo

Eigentlich ganz einfach hier der befehl als beispiel
Dateien die größer als 100000k sind:

Ich hab das ganze noch ein wenig angepasst damit das Ergebniss besser lesbar ist

Code:
 find / -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

Der Befehl war im nachhinein in der Suche und Ausgabe von Dateigrößen sehr ungenau. Es kam zu Rundungsproblemen etc.

Ich hab das Problem mit Hilfe eines Kollegen wie folgt gelöst.

Code:
#!/bin/bash

echo ""
echo ""
echo "############"
echo "S-D-G-D-U-V"
echo "############"
echo "Such Die Größten Dateien Und Verzeichnisse"
echo ""
echo "Script Version: 1.1"
echo "Autor: Phillip Strauch"
echo ""

touch vz2.txt
#ls -s -R > vz2.txt

echo "Sie suchen eine Datei oder ein Verteichnis was üver einer bestimmten Größe liegt."
echo "Dazu geben Sie bitte die kleineste Verzeichnis bzw. Dateigröße in Kilobyte an."
echo "Größe in Kilobyte: " 
read si

find / -type f -size +$si -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' > vz2.txt

echo "Suche FERTIG!"
echo "Möchten Sie das Ergebnis sehen j/n? "
read lesen

if [ "$lesen" = j -o "$lesen" = J ]
then
 more vz2.txt
 echo "#########"
 echo "E N D E !"
 echo "#########"
else
 exit
fi

Vielen Dank für die Hilfe!
 
Hi.
The-Chaos6 hat gesagt.:
find / -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
Der Befehl war im nachhinein in der Suche und Ausgabe von Dateigrößen sehr ungenau. Es kam zu Rundungsproblemen etc.
[...]
Code:
#!/bin/bash
find / -type f -size +$si -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' > vz2.txt
Ähm, wo ist denn jetzt da der Unterschied? Und was sollen da für Rundungsprobleme aufgetreten sein? Dir ist schon klar, das 1kB = 1024B ist?

Gruß
 
Sorry, aber das ist falsch.

1kB = 1000 Byte
1kiB = 1024 Byte

IIRC zeigt aber Linux "echte" kiB an, nennt es aber trotzdem kb...
 
Frueher waren 1 KB mal 1024 Byte, bis dann das Idioten-KiloByte eingefuehrt wurde, welches nur 1000 Byte hat und eben fuer dumme Menschen einfacher zu rechnen ist... :rolleyes:

Fuer mich ist und bleibt 1 KByte=1024 Byte!
 
Genau diese Umstellung der Berechnung macht im übrigen nur noch Probleme bei der Programmierung, da man nicht mehr weiß, wie man das wem recht machen soll. Man sollte überlegen, ob man die Art der Berechnung nicht als Einstellungs-Option ins OS integriert :D
 
Sorry, aber das ist falsch.

1kB = 1000 Byte
1kiB = 1024 Byte

IIRC zeigt aber Linux "echte" kiB an, nennt es aber trotzdem kb...
Ich weiß, allerdings bezog ich mich auf das find Kommando und darauf das im Computer überlicherweise mit binary Byte gerechnet wird.

man find hat gesagt.:
-size n[cwbkMG]
File uses n units of space. The following suffixes can be used:

`b' for 512-byte blocks (this is the default if no suffix is
used)

`c' for bytes

`w' for two-byte words

`k' for Kilobytes (units of 1024 bytes)
Gruß
 
> Frueher waren 1 KB mal 1024 Byte, bis dann das Idioten-KiloByte eingefuehrt wurde,
> welches nur 1000 Byte hat und eben fuer dumme Menschen einfacher zu rechnen ist...

der Präfix "kilo" hat aber nun mal den Wert 10^3, das ist ein Standard. Daran ändert sich auch nichts, wenn in der IT (nicht jedoch in der Informatik) jahrelang was anderes behauptet worden ist.

> Fuer mich ist und bleibt 1 KByte=1024 Byte!

Es ist meistens ja klar was gemeint ist aber spätestens seit der Größenangabe von Festplatten, die mit echten "Mega" und "Giga" arbeiten und damit eine große Abweichung vom erwartetet Wert erreichen, ist es damit aber vorbei.

Im Zweifelsfall enstpricht kilo nunmal 10^3...
 
Bei Festplatten handelt es sich da praktisch um Beschiss. Denn man erwartet 80 echte GB, bekommt aber weniger. Der Rechner arbeitet eben mit 1024 und nicht mit 1000, entsprechend sollten auch die Groessenangaben von Festplatten ausgelegt werden, denn das OS richtet sich beim Speicherverbrauch sicher nicht nach der Beschriftung der Platte.

Natuerlich ist mir bekannt, dass Kilo fuer 1000 (usw.) steht, jedoch ist es in der "binaeren Computerwelt" etwas anders und somit sollte es eben, aus Gruenden der Konsistenz, dabei bleiben.
 
Zurück