Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: script pls  (Přečteno 3590 krát)

ronaldo

  • Návštěvník
  • Příspěvků: 64
script pls
« kdy: 30 Listopadu 2007, 15:18:03 »
zdravim,
cel by som sa spytat ci je mozne spravit script, co by ku kazdemu precienku v precienku pridal nejake pismenko. trebars mam 1000 priecinkov v /home/gunz/work a pred kazdy cem pridat pismenko k. (myslim do nazvu). ak je to mozne dalo by sa sem napisat aj konkretny script? dakujem
Client: AMD Athlon64 3200+, 512MB RAM, GeForce 7300 GT, 40 GB HDD, Ubuntu 7.10
Server: AMD Duron 1800+, 352MB ramka, 20 GB HDD, Debian 4.0 etch

Tomáš Pikálek

  • Závislák
  • ***
  • Příspěvků: 1859
    • Tomáš Pikálek
Re: script pls
« Odpověď #1 kdy: 30 Listopadu 2007, 15:36:14 »
Pokud tam nejsou žádné podsložky:
cd /home/gunz/work
find * | while read s; do mv "$s" "k$s"; done;

nettezzaumana

  • Host
Re: script pls
« Odpověď #2 kdy: 30 Listopadu 2007, 16:00:22 »
Pokud tam nejsou žádné podsložky:
cd /home/gunz/work
find * | while read s; do mv "$s" "k$s"; done;

uff. s timhle jsi si nedal moc prace ;/ ?? 
-- ps navic to nebude fungovat, pokud maji adresare nejaky obsah (coz vetsinou maji pac od toho jsou) a pokud ve jmenu obsahuji mezery :D  // a vubec, docela se ti divym, ze tady klukovi vygenerujes prikaz, ktery beze slova zmeni rekurzivne cast filesystemu a jeste evidentne navic mimo jeho pozadavek..
smite once is not enough for you.. GRRR

Citace: ronaldo
trebars mam 1000 priecinkov v /home/gunz/work a pred kazdy cem pridat pismenko k. (myslim do nazvu)
zkus spis:
ls -bx1 . &>filelist.txt  // '-b' vyescapuje mezery, -x1 tiskne jednu polozku na radek a '&>' zapise do souboru
while read line; do if [ -d "./$line" ]; then echo "k$line"; fi ; done <filelist.txt  // ps. vsimni si, ze zde je prikaz 'echo "k$line"' a ne 'mv $line k$line' -- to aby jsi si mohl vyzkouset jestli to skutecne funguje bez nebezpeci zapisu .. take si vsimni podminky 'if [ -d "./$line" ];' coz znemena, pokud je dana polozka adresar, podminky si muzes nejake pridat


enjoy by ntz
« Poslední změna: 30 Listopadu 2007, 16:25:35 od nettezzaumana »

nettezzaumana

  • Host
Re: script pls
« Odpověď #3 kdy: 30 Listopadu 2007, 16:11:58 »
4 ronaldo >> to co pise Tomas Pikalek rozhodne doporucuji nezkouset!

olbrait

  • Stálý člen
  • **
  • Příspěvků: 814
  • Registered User #452059
Re: script pls
« Odpověď #4 kdy: 30 Listopadu 2007, 16:16:11 »
cd /home/gunz/work
rename "s/ */k/" *

ti ku všetkému v /home/gunz/work, vrátane priečinkov a súborov pridá na začiatok "K"
laptop: HP COMPAQ 6735s, AMD QL-60, ATI HD3200, Ram 1754 MB, HDD 250 GB, Ubuntu 9.04 64bit, Debain Squeeze 64bit. ...Ubunt 9.10 64bit šlo do /dev/null/
desktop: MB SV KT 400, AMD Athlon 2000XP, MSI GeForce MX 440 64 MB, Ram 512 MB, HDD Maxtor 80 GB, Ubuntu 8.04.3
 Linuxák v mojom okolí

nettezzaumana

  • Host
Re: script pls
« Odpověď #5 kdy: 30 Listopadu 2007, 16:22:14 »
cd /home/gunz/work
rename "s/ */k/" *

ti ku všetkému v /home/gunz/work, vrátane priečinkov a súborov pridá na začiatok "K"
nechci prudit: ale zkousel jsi ten prikaz jestli funguje???? ja obcas nevychazim z uzasu, jak jsou nekteri jedinci schopni vyprodukovat nefunkcni smatlave reseni, ktere je potencionalne nebezpecne (meni filesystem) -- to tvoje mi diky bohu pouze nefunguje..

olbrait

  • Stálý člen
  • **
  • Příspěvků: 814
  • Registered User #452059
Re: script pls
« Odpověď #6 kdy: 30 Listopadu 2007, 16:24:08 »
mne funguje a robí mi presne to, čo chcel ronaldo

edit: určite by som sem nedával niečo, čo by som si predtým nevyskúšal
« Poslední změna: 30 Listopadu 2007, 16:30:41 od olbrait »
laptop: HP COMPAQ 6735s, AMD QL-60, ATI HD3200, Ram 1754 MB, HDD 250 GB, Ubuntu 9.04 64bit, Debain Squeeze 64bit. ...Ubunt 9.10 64bit šlo do /dev/null/
desktop: MB SV KT 400, AMD Athlon 2000XP, MSI GeForce MX 440 64 MB, Ram 512 MB, HDD Maxtor 80 GB, Ubuntu 8.04.3
 Linuxák v mojom okolí

nettezzaumana

  • Host
Re: script pls
« Odpověď #7 kdy: 30 Listopadu 2007, 16:31:55 »
mne funguje a robí mi presne to, čo chcel ronaldo
Kód: [Vybrat]
$ pwd
/home/nettezzaumana/myscripts_bckp
$ ls
act.txt      emailslist_evolution.txt  fuj.c        veterina_emails.info  veterina_mails3.txt   veterina_mails.txt
easy_e17.sh  final.txt                 logicals.sh  veterina_mails2.txt   veterina_mails3.txt~  veterina_mails.txt~
$ rename "s/ */k/" *
$ ls
act.txt      emailslist_evolution.txt  fuj.c        veterina_emails.info  veterina_mails3.txt   veterina_mails.txt
easy_e17.sh  final.txt                 logicals.sh  veterina_mails2.txt   veterina_mails3.txt~  veterina_mails.txt~
-- me to nefunguje
« Poslední změna: 30 Listopadu 2007, 16:34:18 od nettezzaumana »

nettezzaumana

  • Host
Re: script pls
« Odpověď #8 kdy: 30 Listopadu 2007, 16:44:24 »
trebars mam 1000 priecinkov v /home/gunz/work a pred kazdy cem pridat pismenko k. (myslim do nazvu).
mne funguje a robí mi presne to, čo chcel ronaldo

edit: určite by som sem nedával niečo, čo by som si predtým nevyskúšal
:DDD  -- ronaldo pise, ze chce menit jmena adresaru, uz nepise, zda-li inkriminovana slozka neobsahuje i soubory, takze bych byl na Tvem miste opatrnejsi v tom co rikam .. bo vic, produkujes-li nejaky prikaz na masivni zmenu souboru .. (no me nastesti nefunguje a moc nechapu, proc funguje //a jestli vubec// funguje Tobe)

olbrait

  • Stálý člen
  • **
  • Příspěvků: 814
  • Registered User #452059
Re: script pls
« Odpověď #9 kdy: 30 Listopadu 2007, 16:47:26 »
vychádzal som z tohto howto
Kód: [Vybrat]
milan@olbrait:~/skuska_rename$ pwd
/home/milan/skuska_rename
milan@olbrait:~/skuska_rename$ ls
dokument  dokument.txt  priecinok  skladba.mp3  skladba.wma
milan@olbrait:~/skuska_rename$ rename "s/ */k /" *
milan@olbrait:~/skuska_rename$ ls
k dokument  k dokument.txt  k priecinok  k skladba.mp3  k skladba.wma
laptop: HP COMPAQ 6735s, AMD QL-60, ATI HD3200, Ram 1754 MB, HDD 250 GB, Ubuntu 9.04 64bit, Debain Squeeze 64bit. ...Ubunt 9.10 64bit šlo do /dev/null/
desktop: MB SV KT 400, AMD Athlon 2000XP, MSI GeForce MX 440 64 MB, Ram 512 MB, HDD Maxtor 80 GB, Ubuntu 8.04.3
 Linuxák v mojom okolí

Tomáš Pikálek

  • Závislák
  • ***
  • Příspěvků: 1859
    • Tomáš Pikálek
Re: script pls
« Odpověď #10 kdy: 30 Listopadu 2007, 16:50:53 »
Omlouvám se...
to nebude fungovat, pokud maji adresare nejaky obsah (coz vetsinou maji pac od toho jsou)
Ano, to máte pravdu, spletl jsem se, protože špatně rozumím slovensky, resp. nevím co znamená "precienek" (myslel jsem, že soubor, nenapadlo mě, že by to byl adresář)
Pokud to dobře chápu, mělo by to fungovat, kdyby se do find přidalo -maxdepth 0
a pokud ve jmenu obsahuji mezery :D
Proč? V uvozovkách to je, takže by mělo.

nettezzaumana

  • Host
Re: script pls
« Odpověď #11 kdy: 30 Listopadu 2007, 16:52:34 »
vychádzal som z tohto howto
Kód: [Vybrat]
milan@olbrait:~/skuska_rename$ pwd
/home/milan/skuska_rename
milan@olbrait:~/skuska_rename$ ls
dokument  dokument.txt  priecinok  skladba.mp3  skladba.wma
milan@olbrait:~/skuska_rename$ rename "s/ */k /" *
milan@olbrait:~/skuska_rename$ ls
k dokument  k dokument.txt  k priecinok  k skladba.mp3  k skladba.wma
vychazet je hezke, ale ty jsi psal, ze jsi to zkousel -- ja taky a me to nefunguje .. nebudem se prudit a osocovat.
ted mi jenom odpovez, pac by me to skutecne zajimalo:
Opravdu Ti to funguje???

olbrait

  • Stálý člen
  • **
  • Příspěvků: 814
  • Registered User #452059
Re: script pls
« Odpověď #12 kdy: 30 Listopadu 2007, 16:56:45 »
to že som z neho vychádzal znamená, že som z neho čerpal info na to, ako by to malo fungovať. Ak si si pozeral tú stránku, tak to čo konkrétne chce ronaldo sa tam vôbec nerieši, takže som to musel pred postnutím vyskúšať. A výpis z môjho terminálu hovorí sám za seba
laptop: HP COMPAQ 6735s, AMD QL-60, ATI HD3200, Ram 1754 MB, HDD 250 GB, Ubuntu 9.04 64bit, Debain Squeeze 64bit. ...Ubunt 9.10 64bit šlo do /dev/null/
desktop: MB SV KT 400, AMD Athlon 2000XP, MSI GeForce MX 440 64 MB, Ram 512 MB, HDD Maxtor 80 GB, Ubuntu 8.04.3
 Linuxák v mojom okolí

nettezzaumana

  • Host
Re: script pls
« Odpověď #13 kdy: 30 Listopadu 2007, 17:02:05 »
4 Tomas Pikalek >> ok, sry, ze jsem na Tebe tak vyjel, ale tohle mi pripada jako trocha nerozum ..
jinak s mezerama to nebude tak jednoduche, pac ja to zkousel puvodne na jeden radek s for, a muzes si sam ozkouset, jak se ten kram chova:

for x in $(ls -bx1 .); do echo "$x"; done  // rozesere jmena souboru s mezerou
for x in $(ls -x1 . | sed 's/^/\"/;s/$/\"/'); do echo "$x"; done  // o5 to roztahne na vic radku, ackoliv:
ls -x1 . | sed 's/^/\"/;s/$/\"/'  // vypada normalne, stejne jako
ls -bx1 .

jedine co me napadlo a fungovalo je to reseni s mezikrokem zapisu do souboru a pak cteni toho souboru.. samotneho by me zajimalo jak to udelat bez mezizapisu
« Poslední změna: 30 Listopadu 2007, 17:05:27 od nettezzaumana »

 

Provoz zaštiťuje spolek OpenAlt.