PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : jede 2. Datei verschieben..



qeldroma
12-04-2006, 16:08
Hallo zusammen,

ich habe ein Verzeichnis, welches ich schlicht halbieren möchte.
Wie schreibe ich das?

Ich möchte, das einfach nur jede zweite Datei verschoben wird, so etwa nach dem Motto:


ls /opt|while read file; do [ Bedingung ] && mv $file /nach/irgendwo;done

Wie könnte "Bedingung" aussehen? Ich habe gerade keinen zündenden Einfall...:confused:

Grüße, Florian

peschmae
12-04-2006, 16:25
Vorschlag:



ls /usr/bin | head -n $(expr $(ls /usr/bin/ | wc -l) / 2)

um die Dateiliste zu kriegen - den Rest hast du ja schon.

ls /usr/bin | wc -l zählt die Dateien, expr dividiert durch zwei und head nimmt von der ls-Liste nur die ersten n/2 Dateien

MfG Peschmä

qeldroma
12-04-2006, 16:37
;)

Coole Idee, mit "head"-halbieren :cool: :cool:

Danke!

Romanday
13-04-2006, 01:59
Vorschlag:



ls /usr/bin | head -n $(expr $(ls /usr/bin/ | wc -l) / 2)

um die Dateiliste zu kriegen - den Rest hast du ja schon.

ls /usr/bin | wc -l zählt die Dateien, expr dividiert durch zwei und head nimmt von der ls-Liste nur die ersten n/2 Dateien

MfG Peschmä

_________Elegant_________ .

Lustiger wirds, wenn er das Verzeichnis wirklich halbieren möchte.
Daher Byte Anzahl / 2. :D

Joghurt
13-04-2006, 15:10
Einfacher:
ls | sed -n 1~2p