Fórum Ubuntu CZ/SK

Ostatní => Archiv => Téma založeno: ronaldo 30 Listopadu 2007, 15:18:03

Název: script pls
Přispěvatel: ronaldo 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
Název: Re: script pls
Přispěvatel: Tomáš Pikálek 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;
Název: Re: script pls
Přispěvatel: nettezzaumana 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
Název: Re: script pls
Přispěvatel: nettezzaumana 30 Listopadu 2007, 16:11:58
4 ronaldo >> to co pise Tomas Pikalek rozhodne doporucuji nezkouset!
Název: Re: script pls
Přispěvatel: olbrait 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"
Název: Re: script pls
Přispěvatel: nettezzaumana 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..
Název: Re: script pls
Přispěvatel: olbrait 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
Název: Re: script pls
Přispěvatel: nettezzaumana 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
Název: Re: script pls
Přispěvatel: nettezzaumana 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)
Název: Re: script pls
Přispěvatel: olbrait 30 Listopadu 2007, 16:47:26
vychádzal som z tohto howto (http://www.cyberciti.biz/tips/renaming-multiple-files-at-a-shell-prompt.html)
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
Název: Re: script pls
Přispěvatel: Tomáš Pikálek 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.
Název: Re: script pls
Přispěvatel: nettezzaumana 30 Listopadu 2007, 16:52:34
vychádzal som z tohto howto (http://www.cyberciti.biz/tips/renaming-multiple-files-at-a-shell-prompt.html)
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???
Název: Re: script pls
Přispěvatel: olbrait 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
Název: Re: script pls
Přispěvatel: nettezzaumana 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