2016-07-29 11 views
1

Ich möchte Dateien, die> 500kb sind. Zuerst verwende ich find, um alle solche Dateien aufzulisten find . -maxdepth 1 -name '*.log' -size +500k, die "./filename" zurückgibt, und dann schreibe ich einen anderen Befehl zum Aufteilen der Datei nach meiner Anforderung hier Dateiname ist die Ausgabe des ersten Befehls. Jetzt kann mir jemand helfen, beides so zu kombinieren, dass die Ausgabe des ersten Befehls der zweite ist.Split-Dateien größer als 500kb in bestimmten Verzeichnis

Antwort

2

Wie wäre es mit einem einzigen Liner?

find . -maxdepth 1 -name '*' -size +500k -exec 'split' '-b' '500k' '-d' '-a' '4' '{}' '{}' ';' 
+0

danke. Es klappt. –

+1

Ich bin froh, dass ich geholfen habe – e4c5

1

Sie können eine process substitution für diesen Einsatz:

while IFS= read file 
do 
    split -b 500k -d -a 4 "$file" "$file" 
done < <(find . -maxdepth 1 -name '*.log' -size +500k) 

Das heißt: die while Schleife durch den Ausgang find gespeist wird.