Portaal Portaal Pingviini veeb foorumi pealeht
  Viki  |  IRC  |  Otsing  |  Küsimused ja vastused  |  Profiil  |  Privaatsõnumite vaatamiseks logi sisse  | Logi sisse või Registreeru
<empty>
Vaata järgmist teemat
Vaata eelmist teemat

Postita uus teemaVasta teemale
Autor Sõnum
daddo
Pingviini kasutaja
Pingviini kasutaja



Liitunud: 19.07.2005
Postitused: 98

Distributsioon: Ubuntu
estonia.gif
postituspostitatud: 07.09.2010, 21:24  postituse pealkiri:  skriptiga kataloogist failide kustutamine ...  

Kas keegi aitaks koostada väikese scripti, mis kustutaks digikaamera mälukaardilt kopeeritud kataloogist (mis sisaldab faile kujul

IMG_1234.JPG
IMG_1235.JPG
...)
failid, mille nimi POLE samas kataloogis olevas tekstifailis ärakustuta.txt (sisuliselt ls -1 >>ärakustuta.txt kaudu saadud fail, kust on valikuliselt kustutatud osade failide nimed).


Ehk tekstifail nimekirjaga sisaldab failinimesid, mida ei tohi kustutada ja nimekirjast puuduvad failid kõik kustutamisele.


mckevin
Pingviini aktivist
Pingviini aktivist


Vanus: 35
Liitunud: 02.05.2007
Postitused: 121
Asukoht: tallinn
Distributsioon: Arch Linux x86_64
estonia.gif
postituspostitatud: 07.09.2010, 21:59  postituse pealkiri:  (teema puudub)  

midagi nii peaks olema
Kood:

#!/bin/bash
for f in *; do
   kustuta=1;
  for d in $(cat ärakustuta.txt); do
    if [ "$f" = "$d" ]; then
               kustuta=2;
    fi
  done
  if [ "$kustuta" = "1" ]; then
              ls $f #asenda rm $f -ga kui oled kindel et töötab õigesti
    fi
done


daddo
Pingviini kasutaja
Pingviini kasutaja



Liitunud: 19.07.2005
Postitused: 98

Distributsioon: Ubuntu
estonia.gif
postituspostitatud: 07.09.2010, 22:44  postituse pealkiri:  (teema puudub)  

mckevin kirjutas:
Kood:

#!/bin/bash
for f in *; do
   kustuta=1;
  for d in $(cat ärakustuta.txt); do
    if [ "$f" = "$d" ]; then
               kustuta=2;
    fi
  done
  if [ "$kustuta" = "1" ]; then
              ls $f #asenda rm $f -ga kui oled kindel et töötab õigesti
    fi
done


Põhimõtteliselt tundub tegevat täpselt seda, mida soovisin, ainult et... avastasin, et kui sekka juhtub faile, mille nimes on mingil põhjusel tühik, näiteks IMG_0068 (koopia).jpg, siis kood jääb hätta:

Tsitaat:
rm: `IMG_0068' ei saa kustutada: No such file or directory
rm: `(koopia).jpg' ei saa kustutada: No such file or directory


bobc
Pingviini aktivist
Pingviini aktivist


Vanus: 43
Liitunud: 09.07.2005
Postitused: 165
Asukoht: undef
Distributsioon: SouRCe64 GNU/Linux
estonia.gif
postituspostitatud: 07.09.2010, 22:48  postituse pealkiri:  (teema puudub)  

Pakkuks ka omalt poolt pikema variandi:

Kood:

#!/bin/sh

oIFS=$IFS
IFS=$'\n'

`ls --color=never -1 > templist.txt`

for ignore in $(cat ./ignore.txt)
do
    echo "Eemaldan listist: ${ignore}"
    sed -i "s|${ignore}||g" ./templist.txt
done

for remove in $(cat ./templist.txt)
do
    if [ "${remove}" != "" ]; then
        if [ -f "${remove}" ]; then
            echo "F:${remove}"
            #rm "${remove}"
        fi
    fi
done

IFS=$oIFS


ignore.txt asenda oma failiga, kus sul need pildid sees mida ei tohi kustutada.
ignore.txt peaks ka olema ignore.txt templist.txt ka.

Peaks toimima ka kui Tühikud sees! Kui script asub ka samas kataloogis kus sul need JPG siis pane scriptifail ka ignore.txt listi.

Lisa eelpool toodud Mckevin scriptile
algusesse
mina paneks ka rm "$f" (siis pole vaja "escape spaces")
Kood:

oIFS=$IFS
IFS=$'\n'

#siin siis script

IFS=$oIFS

_________________
Image

akbgf
Vana Pingviin
Vana Pingviin



Liitunud: 07.10.2009
Postitused: 763
Asukoht: Tõravere
Distributsioon: OpenSUSE, Ubuntu
estonia.gif
postituspostitatud: 08.09.2010, 09:29  postituse pealkiri:  Re: skriptiga kataloogist failide kustutamine ...  

daddo kirjutas:
Kas keegi aitaks koostada väikese scripti, ..
Ehk tekstifail nimekirjaga sisaldab failinimesid, mida ei tohi kustutada ja nimekirjast puuduvad failid kõik kustutamisele.

Ehk on ohutum, kui nihutad skriptiga nimekirjas olevad failid teise kausta ja siis kustutad rahumeeli kogu kausta tühjaks.
Siis saad enne kustutamist teises kaustas veenduda, et ikka kõik soovitud failid on sinna jõudnud.


mckevin
Pingviini aktivist
Pingviini aktivist


Vanus: 35
Liitunud: 02.05.2007
Postitused: 121
Asukoht: tallinn
Distributsioon: Arch Linux x86_64
estonia.gif
postituspostitatud: 08.09.2010, 09:45  postituse pealkiri:  (teema puudub)  

õige jah turvalisem oleks panna * asemel *.JPG või IMG*.JPG, muidu kustutab kõik ära Very Happy tühiku probleem on lahedatud kui $f asemele panna "$f", väike näpukas Very Happy


Näita (aja järgi):      
Postita uus teemaVasta teemale


Vaata järgmist teemat
Vaata eelmist teemat
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group