Sziasztok!
Adott egy lista.txt állomány, mely fájlok elérési útját tartalmazza soronként (clamscan logból kiemelve). Ezeket a fájlokat én mv-vel szeretném összegyűjteni egy közös könyvtárba ahonnan késöbb törölném. Ezt így próbáltam kivitelezni:
mv `cat lista.txt` célkönyvtár
Az mv azokat a sorokat amelyek szóközt tartalmaznak eltörve "kapja meg" és ennek következtében nem is helyezi át őket a kívánt könyvtárba. Hogy tudnám ezt megoldani?
- 1343 megtekintés
Hozzászólások
Én megpróbálnám a lista.txt minden egyes sorát idézőjelek ("") közé tenni. Hátha...
- A hozzászóláshoz be kell jelentkezni
orig=$IFS ## Mentjük az IFS értékét (Internal Field Separator)
# Majd az új IFS a sortörés. Így a szóközös filenevek nem lesz két file
IFS="
"
# átnevezzük/helyezzük őket egyenként
for i in `cat lista.txt`; do mv $i celkonyvtar; done
IFS=$orig # Visszaállítjuk az eredeti IFS-t. (környezeti változót nem illik tartósán átbizergálni... ;) )
---
"A megoldásra kell koncentrálni nem a problémára."
- A hozzászóláshoz be kell jelentkezni
... IFS=$orig # Visszaállítjuk az eredeti IFS-t. (környezeti változót nem illik tartósán átbizergálni... ;) )...
Ha nem exportalod, akkor altalaban nem sikerul 'tartósán átbizergálni'
- A hozzászóláshoz be kell jelentkezni
Mivel az IFS-t a shell kezeli, igy nem kell exportalni a tartos hatas kedveert. Magyarul el kell menteni es vissza kell allitani :-)
- A hozzászóláshoz be kell jelentkezni
Hogy nem gondoltam a környezeti változókra :-(
Kössz... rendben ment a dolog!
- A hozzászóláshoz be kell jelentkezni
Bar mar megoldottad maskepp, az archivum kedveert:
cat lista.txt|xargs -D "\n" ...
elonye, hogy a hosszu listakra is mukodik
- A hozzászóláshoz be kell jelentkezni