• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Gesamtgröße mehrerer Dateien ermitteln

Escho

Advanced Hacker
Hallo

Gibt es eine Funktion, mit der ich die Gesamtgröße mehrerer Dateien ermitteln kann, um dann mit dieser Größe weiterrechnen zu können?

Ein Beispiel:
Code:
du -bc ./*.mp2 | cut -f1
ergibt folgende Ausgabe:
Code:
17447616
23263488
40711104
Die 40711104 ist die Summe der beiden oberen Dateigrößen und diese Summe möchte ich alleine in einer Variablen stehen haben.
Wie mach ich das?

Edgar
 
OP
Escho

Escho

Advanced Hacker
Super Idee! Danke!

Dieses kleine Testscript macht genau, was es soll,
Code:
#!/bin/sh

var=`du -bc /filmbearbeitung/tmp/*.mp2 | cut -f1 | tail -n 1`

kdialog --msgbox $var
nämlich die Gesamtgröße aller Dateien, die auf .mp2 enden in einer Variablen abzulegen.

Edgar
 

longman

Advanced Hacker
Probier mal:

Code:
echo $(du -bc ./*.mp2 | cut -f1 |sort --numeric |tail -1)

PS: Ich sehe gerade das Du ähnliches rausgefunden hast. Also abhaken.
 
OP
Escho

Escho

Advanced Hacker
Ganz anderer Weg:
Geht auch und sieht sogar noch einfacher aus Auf diese Möglichkeit wäre ich nie gekommen.

Edit: dauert aber durch das Aneinanderhängen der Dateien (und diese sind bei der Videobearbeitung naturgemäß sehr groß) sehr lange.

Edgar
 

abgdf

Guru
Ich mag ja Python, da hat man die volle Kontrolle :p:
Code:
#!/usr/bin/env python
#-*- coding: iso-8859-1 -*-

import os
import os.path

mydir = os.listdir(os.getcwd())

x = 0

for i in mydir:

    if i.endswith(".mp2"):
        x += os.path.getsize(i)

print "Die Dateien auf .mp2 im aktuellen Verzeichnis haben zusammen eine Größe von " + str(x) + " Bytes."
Gruß
 
OP
Escho

Escho

Advanced Hacker
Und ich mag's so, da ich mich mit Python und Perl nicht auskenne:
requantisieren ()
{
#Berechnung des Requantisierungsfaktors

videogroesse=`du -bc ${tmp_pfad}/*.m2v | cut -f1 | tail -n 1`
audio_summe=`du -bc ${tmp_pfad}/*.ac3 ${tmp_pfad}/*.mp2 | cut -f1 | tail -n 1`
audio_video_summe=`du -bc ${tmp_pfad}/*.ac3 ${tmp_pfad}/*.mp2 ${tmp_pfad}/*.m2v | cut -f1 | tail -n 1`
diffav=$((maxgroesse-audio_summe))
requantisierungsfaktor=`echo "scale=8 ; ${videogroesse}/${diffav}*1.04" | bc`

#Wenn der Film zu gross für eine einzige DVD ist, Requantisierung anstossen

if [ $audio_video_summe -ge $maxgroesse ]
then
kdialog --msgbox "Requantisierung mit Faktor "${requantisierungsfaktor}" notwendig"
${tc_pfad}/tcrequant -d2 -i ${tmp_pfad}/film.m2v -o ${tmp_pfad}/film.requant -f ${requantisierungsfaktor}
mv ${tmp_pfad}/film.requant ${tmp_pfad}/film.m2v
fi
}
So hab ichs in mein DVB-Script eingebaut, um das Requantisieren des Video-Files zu automatisieren.

Edgar
 
Oben