Fájlok szétválogatása shellscript-tel

Fórumok

Sziasztok!
Szeretném egy adott könyvtárból($DIRBOL) átmásonlni bizonyos fájlokat egy másik könyvtárba($DIRBE), a következő feltételekkel:
1. Van egy nevek.txt fájlom, amibe soronként találhatóak bizonyos karakterek, pl. nevek: Bela, Jani, Mari. Helye: $DIRBOL/nevek.txt
****
Bela
Jani
Mari
--eof--
2. $DIRBOL-nek vannak alkönyvtárai, amiben rengeteg fájl van. SZeretném nevek szerint szétválogatni a fájlokat és egy másik könyvtárba másolni.
A fájlok elnevezése: nev_szam.jpg (pl. Jani_116.jpg) Ebből a nevére szeretnék keresni, tehát egy névhez több fájl tartozik.
#!bin/bash
DIRBOL=
DIRBE=
NEVEK= cat -b < $DIRBOL/nevek.txt

for masoltfajl in find $DIRBOL "*$NEVEK*.jpg"
do
cp $masoltfajl $DIRBOL/$masoltfajl
done

Valami ilyesmire gondolok nem tudom mennyire kapisgálok jó helyen!
A $nevek változót igazából nem sikerül rábírnom, hogy csak egy sort adjon be, mert így az egész fájl kezeli!
Valaki tudna Nekem ebben segíteni, hogy működöképes legyen a szkript! Esetleg milyen parancsokat, kapcsolókat nézzek meg az is nagy könnyítés lenne.
Előre is köszönöm!

Hozzászólások

while read nev;do echo $nev;done < nevek.txt

bela
jani
Mari

vagy for nev in $(cat nevek.txt);do
.....
done

t

$DIRBOL=
$DIRBE=
$NEVEK= cat -b < $DIRBOL/nevek.txt

Bocs, de ez igy sh-ban nem azt jelenti amire te gondolsz.. (perl-ben lehetne valami hasonlo ertelme)... Szerintem helyesen igy nezne ki:
DIRBOL=
DIRBE=
NEVEK=`cat <$DIRBOL/nevek.txt`

A cat-nak meg miert kell megsorszamoznia a soraidat?

Amugy meg lasd fentebb...

Zsiraf

ciklussal vegigmesz a nevek file-on, match-elsz regexpet, nezel konyvtarat, h letezik-e, masolsz, orulsz, ennyi.

t

Előről kezdtem az egészet!
#!/bin/bash
DIRBOL=
nevek=`while read nevek;do echo $nevek; done< $DIRBOL/nevek.txt`
find $DIRBOL -name "*$nevek*.jpg" -print
--EOF--
Eddig működik a szkript, de csak akkor ha egy sor van a nevek txt fájlban, ha már hármat rakok bele már nem keres rendesen.
Mi lehet probléma?

Miert akarod mindenaron ``-ba rugni azt a nyamvadt filet?

while read nevek;
do
find $DIRBOL -name "*$nevek*.jpg" -print
done < $DIRBOL/nevek.txt

Amugy nekem ugy tunik h 1 bash rovidtalpalo erdemes lenne elolvasni, ott feltarnak ilyen temakort is, hat meg az advanced bash.... tldp.org.

#!bin/bash
DIRBOL=
DIRBE=
for nevek in $(cat $DIRBOL/nevek.txt)
do
find $DIRBOL -name "*$NEVEK*.jpg" -print
done

Eddig jó a fájl, kírja amit keresek. Viszont a erednényt szeretném DIRBE másolni. DE se |-pal sem > nem működik. Ebben tudnátok még segíteni!
cp a szintaktisa, hogyan lehet Neki paramétert átadni?

for minta in Mari \
Bela \
Jutka \
akarki
do
ez_a_file_kell=`ls $DIRBOL|grep $minta`
cp $DIRBOL/$ez_a_file_kell $DIRBE/$ez_a_file_kell
done

nem köll oda külön lista fájlban, ha kevés a név.

--
unix -- több, mint kód. filozófia.

Nem, flamelni akarok, csak tenyleg ugy nekiallni valaminek, hogy semmi alapod, persze ugyis lehet, de szerintem erdemes egy rovidke fel orat eltolteni azzal, hogy mi a syntax, par exampelt elolvasni nezelodni.
Magadnak is jot teszel(nem gyalulod le a gepet, tanulsz, stb..)
Szoval hajra. A doksikat elolvasod mar siman megirod magadtol.
rm-el meg ovatosan :o)