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: Pomoc so skriptom  (Přečteno 5858 krát)

garmada

  • Aktivní člen
  • *
  • Příspěvků: 178
  • A.I.
    • Môj blog o IT
Pomoc so skriptom
« kdy: 13 Prosince 2008, 13:27:25 »
Mam otazku ako vyberem z tohto zoznamu iba tie riadky ktore maju na konci ~
Kód: [Vybrat]
/home/hax/.bluefish/highlighting~
/home/hax/.bashrc~
/home/hax/Documents/ubuntu-wiki/attachments/Optimalizace(20)ext3/defrag_0.1~bzr20060502_i386.deb
/home/hax/Documents/grc-prz-vjn~
/home/hax/Documents/Ubuntu LTS Server Administration  Second Edition~tqw~_darksiderg/Ubuntu LTS Server Administration  Second Edition~tqw~_darksiderg.pdf
/home/hax/.gnupg/pubring.gpg~
/home/hax/Projects/python.sh~
/home/hax/Projects/Drupal/pass.txt~
/home/hax/Projects/shell.sh~
/home/hax/Desktop/clean_config~
/home/hax/Desktop/clean~
Os: Ubuntu 9.10 Desktop i686 | Linux User #480898 | Ubuntu User #24615

truhlik

  • Závislák
  • ***
  • Příspěvků: 1626
Re: Pomoc so skriptom
« Odpověď #1 kdy: 13 Prosince 2008, 13:42:57 »
grep -E '*~$'
http://wiki.ubuntu.cz/P%C5%99ipojen%C3%AD%20disku
http://www.linuxsoft.cz/article.php?id_article=1351
http://www.root.cz/clanky/klonovani-obrazu-a-dva-monitory-v-linuxu
Citace: Otakar
Červi jsou moc milá zvířátka, zvláště když má jejich chovatel výhrady proti chování tučňáků

garmada

  • Aktivní člen
  • *
  • Příspěvků: 178
  • A.I.
    • Môj blog o IT
Re: Pomoc so skriptom
« Odpověď #2 kdy: 13 Prosince 2008, 14:06:18 »
Dik. Mam este jednu otazku a to ako pridam pre kazdy riadok v subore prikaz rm -rf (riadkov je x pocet), naprkilad zo zonamu:
Kód: [Vybrat]
/home/hax/.bluefish/highlighting~
/home/hax/.bashrc~
/home/hax/Documents/grc-prz-vjn~
/home/hax/.gnupg/pubring.gpg~
/home/hax/Projects/python.sh~
/home/hax/Projects/Drupal/pass.txt~
/home/hax/Projects/shell.sh~
/home/hax/Desktop/python_file.py~
/home/hax/Desktop/clean_config~
/home/hax/Desktop/clean~
Potrebujem spravit toto:
Kód: [Vybrat]
rm -rf /home/hax/.bluefish/highlighting~
rm -rf /home/hax/.bashrc~
rm -rf /home/hax/Documents/grc-prz-vjn~
rm -rf /home/hax/.gnupg/pubring.gpg~
rm -rf /home/hax/Projects/python.sh~
rm -rf /home/hax/Projects/Drupal/pass.txt~
rm -rf /home/hax/Projects/shell.sh~
rm -rf /home/hax/Desktop/python_file.py~
rm -rf /home/hax/Desktop/clean_config~
rm -rf /home/hax/Desktop/clean~
Os: Ubuntu 9.10 Desktop i686 | Linux User #480898 | Ubuntu User #24615

nettezzaumana

  • Host
Re: Pomoc so skriptom
« Odpověď #3 kdy: 13 Prosince 2008, 14:36:55 »
grep -E '*~$'

ad.1).. spatne napsany RE .. '*' v RE znamena "zadny nebo libovolny pocet opakovani predchoziho znaku .."

spravne reseni je '~$' .. nema se smysl hadat ze '*~$' funguje, protoze na podobnych chybach jsou zalozeny vsechny security bugy a exploity ..

ad.2) blockx() | while read line; do blocky(); done // takze napriklad `cat foo | while read line; do echo "$line"; done`

ad.3) fox x in $(blockx()); do blocky(); done // takze napriklad `for x in $(cat foo); do echo "$line"; done`
« Poslední změna: 13 Prosince 2008, 14:48:02 od nettezzaumana »

garmada

  • Aktivní člen
  • *
  • Příspěvků: 178
  • A.I.
    • Môj blog o IT
Re: Pomoc so skriptom
« Odpověď #4 kdy: 13 Prosince 2008, 16:18:24 »
Poradte ako mam najst vsetky subory ktore koncia na ~, skusal som tento prikaz ale nic my nenapise a pritom take subory v domovskom pricinku mam.
Kód: [Vybrat]
sudo find /home/hax/  -type f -iname *~* -o -iname .*~* -print
Os: Ubuntu 9.10 Desktop i686 | Linux User #480898 | Ubuntu User #24615

ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
Re: Pomoc so skriptom
« Odpověď #5 kdy: 13 Prosince 2008, 18:10:08 »
Kód: [Vybrat]
find /home/hax -iname \*~
nevedel jsem to, ale nasel jsem to v
Kód: [Vybrat]
man find
notebook MSI EX720X, Ubuntu 10.10

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Pomoc so skriptom
« Odpověď #6 kdy: 13 Prosince 2008, 18:23:57 »
Zrejme se snazis udelat skript "smaz vsechny soubory v adresari  s ~ na konci"?

jde to zrejme asi milion zpusoby, me napadlo treba tohle (uz vidim jak me ntz zpwnuje ;) )

Kód: [Vybrat]
ls | egrep '~$' | while read line; do rm -f "${line}"; done
ls - vypise obsah adresare
egrep - vyfiltruje jen radky odpovidajici regularu (viz ntz)
while ... - cyklus projde vsechno co zbyde a pusti prikaze mezi do a done

btw: @ntz: muzes mi rict, co je spatnyho na regularu .*~$  cokoliv 0-n -krat ~ konec - nechapu, co je na tom spatne?
« Poslední změna: 13 Prosince 2008, 18:26:51 od starenka »
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
Re: Pomoc so skriptom
« Odpověď #7 kdy: 13 Prosince 2008, 18:30:15 »
Citace: man find
       find /tmp -name core -type f -print | xargs /bin/rm -f

       Find files named core in or below the directory /tmp and  delete  them.
       Note  that  this  will work incorrectly if there are any filenames con‐
       taining newlines, single or double quotes, or spaces.

       find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f

       Find files named core in or below the directory /tmp and  delete  them,
       processing  filenames  in  such a way that file or directory names con‐
       taining single or double quotes, spaces or newlines are correctly  han‐
       dled.   The  -name  test  comes before the -type test in order to avoid
       having to call stat(2) on every file.

« Poslední změna: 13 Prosince 2008, 18:31:55 od ufaak »
notebook MSI EX720X, Ubuntu 10.10

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Pomoc so skriptom
« Odpověď #8 kdy: 13 Prosince 2008, 18:35:38 »
ok.... milion - 2 ... cekam na dalsi :))
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

Tomáš Jančík

  • Stálý člen
  • **
  • Příspěvků: 1179
    • TomášJančík.net
Re: Pomoc so skriptom
« Odpověď #9 kdy: 13 Prosince 2008, 18:58:59 »
pokud jde pouze o smazání souborů s ~ na konci, tak by mohlo stačit "rm *~" ne?

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Pomoc so skriptom
« Odpověď #10 kdy: 13 Prosince 2008, 19:03:12 »
jaj jsem idiot. nenapadlo me, ze to umi regexp nebo wildcards...
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

premet

  • Host
Re: Pomoc so skriptom
« Odpověď #11 kdy: 13 Prosince 2008, 19:24:21 »
pokud jde pouze o smazání souborů s ~ na konci, tak by mohlo stačit "rm *~" ne?
Taky si myslím, že by to mělo stačít, zkoušel sem a funguje  :).

ufaak

  • Závislák
  • ***
  • Příspěvků: 2296
Re: Pomoc so skriptom
« Odpověď #12 kdy: 13 Prosince 2008, 19:26:10 »
pokud jde pouze o smazání souborů s ~ na konci, tak by mohlo stačit "rm *~" ne?
Taky si myslím, že by to mělo stačít, zkoušel sem a funguje  :).

ne pokud te zajimaji i podadresare...
notebook MSI EX720X, Ubuntu 10.10

premet

  • Host
Re: Pomoc so skriptom
« Odpověď #13 kdy: 13 Prosince 2008, 20:01:59 »
Ještě mě napadlo tohle, kdyby někdo veděl jak vypsat ls s celou cestou
 
Kód: [Vybrat]
rm `ls -R | grep ~$` takhle by to pak fungovalo, jenže jinak to udělá tohle → ukázka
Kód: [Vybrat]
rm: nelze odstranit „prvocisla.c~“: není souborem ani adresářem
rm: nelze odstranit „vstup.c~“: není souborem ani adresářem
rm: nelze odstranit „vstup_vystup.c~“: není souborem ani adresářem
rm: nelze odstranit „vstup_vystup1.c~“: není souborem ani adresářem
rm: nelze odstranit „bubble_sort.c~“: není souborem ani adresářem
rm: nelze odstranit „insert_sort.c~“: není souborem ani adresářem
rm: nelze odstranit „select_sort.c~“: není souborem ani adresářem

truhlik

  • Závislák
  • ***
  • Příspěvků: 1626
Re: Pomoc so skriptom
« Odpověď #14 kdy: 13 Prosince 2008, 22:11:28 »
ad.1).. spatne napsany RE .. '*' v RE znamena "zadny nebo libovolny pocet opakovani predchoziho znaku .."

spravne reseni je '~$' .. nema se smysl hadat ze '*~$' funguje, protoze na podobnych chybach jsou zalozeny vsechny security bugy a exploity ..
Ok, budu si to pamatovat. Mel jsem za to, ze * znamena jakykoliv, nebo zadny znak.
http://wiki.ubuntu.cz/P%C5%99ipojen%C3%AD%20disku
http://www.linuxsoft.cz/article.php?id_article=1351
http://www.root.cz/clanky/klonovani-obrazu-a-dva-monitory-v-linuxu
Citace: Otakar
Červi jsou moc milá zvířátka, zvláště když má jejich chovatel výhrady proti chování tučňáků

premet

  • Host
Re: Pomoc so skriptom
« Odpověď #15 kdy: 14 Prosince 2008, 10:35:00 »
Jakýkoliv znak je jen tečka ne ?   :)

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Re: Pomoc so skriptom
« Odpověď #16 kdy: 14 Prosince 2008, 12:06:00 »
ad.1).. spatne napsany RE .. '*' v RE znamena "zadny nebo libovolny pocet opakovani predchoziho znaku .."

spravne reseni je '~$' .. nema se smysl hadat ze '*~$' funguje, protoze na podobnych chybach jsou zalozeny vsechny security bugy a exploity ..
Ok, budu si to pamatovat. Mel jsem za to, ze * znamena jakykoliv, nebo zadny znak.
on je totiz rozdil v tzv. wildcards pouzivanych shellem (jako bash) pri expanzi parametru a regexpy, jez se pouzivaji v grepu, sedu, ...
« Poslední změna: 14 Prosince 2008, 12:09:44 od kkaarreell »

truhlik

  • Závislák
  • ***
  • Příspěvků: 1626
Re: Pomoc so skriptom
« Odpověď #17 kdy: 14 Prosince 2008, 14:39:53 »
Aha, tak to bude ono. Pac v bashi se to tak pouziva, aspon teda ja to tak pouzivam.
http://wiki.ubuntu.cz/P%C5%99ipojen%C3%AD%20disku
http://www.linuxsoft.cz/article.php?id_article=1351
http://www.root.cz/clanky/klonovani-obrazu-a-dva-monitory-v-linuxu
Citace: Otakar
Červi jsou moc milá zvířátka, zvláště když má jejich chovatel výhrady proti chování tučňáků

garmada

  • Aktivní člen
  • *
  • Příspěvků: 178
  • A.I.
    • Môj blog o IT
Re: Pomoc so skriptom
« Odpověď #18 kdy: 14 Prosince 2008, 14:54:31 »
Viete niekto napisat taky jednoduchy script ktory by nasiel vsetky subory ktore koncia na ~ a nachadzaju sa v domovskom adresari (okrem .bashrc~).
Ja som napisal toto ale ide to niak divne:
Kód: [Vybrat]
#!/bin/bash
cd ~
cp -rf .bashrc~ /tmp/
sudo find ~ -type f -name '~$' -print >> /tmp/clean
cat /tmp/clean | while read line; do echo sudo rm -rf $line >> /tmp/clean ; done
sed -i 1i"#!/bin/bash" /tmp/clean
echo 'exit 0' >> /tmp/clean
head
sudo echo 'exit 0' >> /tmp/clean
mv /tmp/clean /tmp/clean_run.sh
sudo chmod 777 /tmp/clean_run.sh
sudo /tmp/clean_run.sh
cp -rf /tmp/.bashrc~ ~
rm -rf /tmp/.bashrc~
rm -rf /tmp/clean_run.sh
exit 0
Os: Ubuntu 9.10 Desktop i686 | Linux User #480898 | Ubuntu User #24615

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Re: Pomoc so skriptom
« Odpověď #19 kdy: 14 Prosince 2008, 15:06:51 »
ty tam toho ale delas vic? :-)

Podivej, jestli chces najit soubory koncici na ~, tak to udela
Kód: [Vybrat]
find ~ -type f -name '*~'  2> /dev/nullJestli nechces, aby mezi nimi bylo .bashrc~, tak je to
Kód: [Vybrat]
find ~ -type f -name '*~' ! -name '.bashrc~' 2> /dev/nulla pokud je chces smazat, tak je to
Kód: [Vybrat]
find ~ -type f -name '*~' ! -name '.bashrc~' -exec rm {} \; 2> /dev/nullto 2> /dev/null tam pripadne nedavej, at vidis chybove hlasky a muzes vychytat pripadne bugy
« Poslední změna: 14 Prosince 2008, 15:12:46 od kkaarreell »

garmada

  • Aktivní člen
  • *
  • Příspěvků: 178
  • A.I.
    • Môj blog o IT
Re: Pomoc so skriptom
« Odpověď #20 kdy: 14 Prosince 2008, 15:09:53 »
Kód: [Vybrat]
find ~ -type f -name '*~' ! -name '.bashrc~' -exec rm {} \; 2> /dev/null

To je vsetko? Nic viac netreba?
Os: Ubuntu 9.10 Desktop i686 | Linux User #480898 | Ubuntu User #24615

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Re: Pomoc so skriptom
« Odpověď #21 kdy: 14 Prosince 2008, 15:10:55 »
to zkus ;)
ale muzu tam pridat i nekolik radku zbytecneho balastu a treba i graficky progress bar :D
« Poslední změna: 14 Prosince 2008, 15:15:17 od kkaarreell »

garmada

  • Aktivní člen
  • *
  • Příspěvků: 178
  • A.I.
    • Môj blog o IT
Re: Pomoc so skriptom
« Odpověď #22 kdy: 14 Prosince 2008, 15:22:26 »
to zkus ;)
ale muzu tam pridat i nekolik radku zbytecneho balastu a treba i graficky progress bar :D

Napis, to by sa hodilo. Inak diky. ;)
Os: Ubuntu 9.10 Desktop i686 | Linux User #480898 | Ubuntu User #24615

Martin - ViPEr*CZ*

Re: Pomoc so skriptom
« Odpověď #23 kdy: 14 Prosince 2008, 15:36:10 »
A nebo na to při nejhorším použiju C/C++ co :D

Jsem schválně hledal jak projít disk (protože to znám jen z Woken) a našel jsem http://en.wikipedia.org/wiki/Dirent.h#Member_functions
Ale docela ta struktura nabízí málo info nebo se pletu? Neví někdo něco lepšího? Chybí mi třeba, že tam není zda je to adresář nebo ne? Nebo to poznám pokud je d_ino prázdný? A velikost souboru doufám, že je v proměnný d_reclen.

FindFirstFile z windows a ekvivalenty umějí zjistit zda našli adresář nebo soubor, velikost souboru, datum a čas vytvoření...(píšu z hlavy možná toho je více).
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

 

Provoz zaštiťuje spolek OpenAlt.