[+] Skrypt bash do segregacji plików

Potrzebujesz pomocy z C, C++, perl, python, itp.
bubi
Posty: 1
Rejestracja: 25 lipca 2011, 11:11

[+] Skrypt bash do segregacji plików

Post autor: bubi »

Witam.
M
am problem z napisaniem skryptu, potrzebuję aby wyszukiwał on w danym katalogu pliki z rozszerzeniem .txt i .avi, a następnie przenosił je do innego katalogu. Miałby przykładowo wyszukać pliki 111.avi i 111.txt, a następnie przenieść je do katalogu np. movie.
Z
ależy mi na tym aby przenosił tylko jeśli będą te dwa pliki, czyli dajmy na to jeśli znajdzie sam plik 111.avi to ma nic z nim nie robić.
N
atomiast jeśli skrypt by wyszukiwał jeszcze pliki zawierające w nazwie "PL" i przenosił je do tego samego katalogu to byłbym w pełni szczęśliwy (chociaż to akurat umiem napisać).
Wymyśliłem taki szkielet (oczywiście to w nawiasach zmieniłbym na mv).

Kod: Zaznacz cały

#!/bin/bash

find /home/movie/ -type f -iname \*.avi | while read -r line ; do
        dir=${line%/*}
        name=${line##*/}
        (
                cd /home/bubi/movie/
                qnapi "$name"
        )
done
Byłbym wdzięczny za pomoc, oczywiście nie jest to żadna praca domowa.


Dodane:
Problem rozwiązany:

Kod: Zaznacz cały

dir="./1/"
targetdir="./2/"

find "$dir" -type f -iname "*.avi" | while read avi; do
  base=`basename "$avi"`;
  base="${base:0:${#base}-4}"
  find "$dir" -type f -iname "${base}.txt" | while read txt; do
    echo "Moving $avi and $txt"
    mv -f "$avi" "$targetdir"
    mv -f "$txt" "$targetdir"
  done
done
ODPOWIEDZ