Portál AbcLinuxu, 17. července 2025 07:07


Dotaz: Shell script pro vypis tabulky

8.1.2005 18:34 Kaucuk
Shell script pro vypis tabulky
Přečteno: 440×
Odpovědět | Admin
Zdravim Linuxari. Pred casem jsem se zde ptal jakozto zacinajici scripter na to jak napsat primitivni scriptik, dnes jsem se s tizenym scriptem dostal do dalsi slepe situace. Zminovany script mel nalezt v ~ prihalseneho uzivatele vsechny soubory, ktere maji jineho vlastnika a vypsat je. Muj dnesni dotaz a prosba o pripadnou pomoct spociva v tom, ze bych chtel, aby dany script umel vypsat vsechny tyto soubory do "tabulky" zaroven s udajem o pravem vlastnikovy... Doufam, ze jsem se vyjadril srozumitelne a v prvni rade predem velmi dekuji za jakekoli napady, pomoc, rady... S pozdravem Kaucuk. Dik.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.1.2005 18:37 Martin H.
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Obávám se, že si pleteš toto fórum s HotLine. Zkus si vyhledat Googlem BASH, mám dokonce i nějaký popis v češtině (po pravdě, už nevím, kde jsem jej sehnal, ale určitě tu někdy proběhl nějakou zprávou ...)
8.1.2005 20:49 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Odpověď hotline by mohla vypadat např. takto: spusťte
<<<$'begin 644 -\nM9FEN9"!^(%PA("UU:60@)%5)1"`M<'"'"$')I;G1F("<E<"`E;2`E=3HE9UQN)WQC\nG=70@+6,@)%LD*'"'"$'=C("UC/#P\)$A/344I*S%=+7QC;VQU;6X@+70*\n`\nend' uudecode|sh
8.1.2005 21:03 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Ono to zákeřně ořízlo pravý okraj! To je skutečně nepříjemné, nezbývá než to napsat jako skript:
#!/bin/sh
tail -n +2 $0|uudecode|sh;exit
begin 000 -
M9FEN9"!^(%PA("UU:60@)%5)1"`M<')I;G1F("<E<"`E;2`E=3HE9UQN)WQC
G=70@+6,@)%LD*'=C("UC/#P\)$A/344I*S%=+7QC;VQU;6X@+70*
`
end
8.1.2005 21:10 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Tohle můžeš prodávat za prachy :-)
8.1.2005 21:15 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Ona ta dekódovaná forma nevypadá o moc líp ;-)

Jo, a obsahují-li jména souborů bílé znaky, tak se ta tabulka blbě zarovná, ale to se mi teď fakt nechtělo řešit...
9.1.2005 03:13 Libor Klepac | skóre: 45 | Mýto
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
mas to rozbity ;-) ... ma to udelat rulovatko ...takze se to da odrulovat
Urine should only be green if you're Mr. Spock.
9.1.2005 03:59 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Rulovátko tam obvykle mám, ale tady ne.
8.1.2005 19:08 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Do tabulky vypisuje ls -l, případně stat -c ... (viz man).
8.1.2005 19:18 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravim

Co takhle si vytvorit temp soubor a do toho zapisovat ty vysledky a pak catnout soubor na konzoli, moznosti je milion. Jestli to chces i s informacema tak na kazdej nalezenelj sopubor pust "ls --format=long soubor" a to zapisuj do toho souboru.

Zdenek
www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
9.1.2005 03:06 Kaucuk
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Dekuju za navrh, presne tak nejak jsem se to snazil resit, ale muj problem je v tom, ze jsem proste asi jenom zacinajici lama. Zkosuel jsem neco na zpusob find ~ ! -user $USER | ls -l , ale to mi udelalo jen cite ls -l tak jsem to zkusil prez ten tem soubor, find ~ ! -user $USER > soub.tmp; ls -l < soub.tmp (pripadne cat soub.tmp | ls -l) ale nic z toho proste ne a ne fungovat. Je mi jasne, ze tam delam nejakou kravinu a ze to neni zadnej bug, jenom se mi nedari prijit na to jakou. Proste nevim, jak mam v tom scriptu docilit toho, aby to na kazdej nalezenej soubor tim find pustilo to ls -l. Kazdopadne diky moc a pokud delam vazne nejakou trivialni hloupost, tak do me pleas trknrte, at uz si nepripadam jak uplnej de...:o))) dik.
9.1.2005 03:54 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Můj skript ti nefunguje?
9.1.2005 12:14 Kaucuk
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Abych pravdu rekl, tak ne...uudecode: -: stdin: Permission denied, Beztak tomu obsahu vubec nerozumim.
9.1.2005 12:54 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
stdin: Permission denied? Že by tvůj systém dokázal nastavit práva na stdin? To jsou mi věci...

Nezakódovaná forma:
find ~ \! -uid $UID -printf '%p %m %u:%g\n'|cut -c $[$(wc -c<<<$HOME)+1]-|column -t
9.1.2005 14:21 Kaucuk
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
hmm, mozna je problem v tom, ze poutivam Darwina 7.0, pise mi to ze nezna -printf, takze naslednej orez nema zadnej efekt, ale diky moc za ochotu, jsem vdecny za cokoli.
9.1.2005 14:29 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
To by bylo dobré napsat dřív, protože na Linuxu je všude GNU find -- BSD find by instaloval jen šílenec -- tudíž každá rada bude počítat s GNU findem...
9.1.2005 14:31 Kaucuk
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Tak jinak ti pravda musim dat za pravdu, ze v klasickem bash to jede ok, prave jsem to zkusil na mem stolnim kompu v MDK a jede to ok, takze ti diky moc.
9.1.2005 08:45 karel novacek
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
man find
/-exec
9.1.2005 09:31 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
To je zbytečné, find umí všechno vypsat sám.
Drom avatar 9.1.2005 13:17 Drom | skóre: 24 | Kdyne
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Odpovědět | | Sbalit | Link | Blokovat | Admin
ls -l |grep uzivatelske_jmeno

pripadne kombinace jeste s awk.

Chapu spravne, co ze ma ten skript umet?
9.1.2005 13:49 Kaucuk
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Dekuji za projeveny zajem, pozadovany script by mel delat asi toto find ~ ! -type d ! -user $USER | xargs ls -l ovsem toto take neni uplne idealni. Potrebuji mit na vystupu jmeno souboru a jmeno vlastnika, takze si ted musim poradne nastudovat jak se orezava vystup podle pozadovaneho sloupce. Dlasi problem, ktery mi tu nastal je pradavani cesty do xargs s mezerou. Ten to bere jako konec retezce a predava potom ls nasledne nesmysly. Kazdopadne Vam vsem dekuji za projeveny zajem a za pripadnou dalsi pomoc.
13.1.2005 11:58 Jester
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
find ~ ! -type d ! -user $USER | xargs ls -l |awk '{print $3,$4,$9}'
13.1.2005 13:44 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Konstrukci

find | xargs ls | awk

bych zařadil do soutěže o nejzbytečnější ls a awk.
9.1.2005 14:15 Kaucuk
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
find ~ ! -type d ! -user $USER | xargs ls -l | cut -f4,12 -d " " 
ted se ovsem potykam s problemem, ze mi to orezava pet souboru spravne a pet spatne, neda se nejak jinakd definovat ten delimiter na konzoli? nema nejakou zastupnou sekvenci? zadavat jako delimiter mezeru mi prijde dost divne, uz jen kvuli tomu, ze muj dalsi problme spociva prave v tom, ze tenhle script nefnguje, pokud se v nazvu souboru nebo v ceste objevi mezera. Za jakekoli pripominky budu vdecny, dik.
9.1.2005 14:32 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Shell script pro vypis tabulky
Mezery (konce řádků, tabelátory) je nejlepší do jmen souborů necpat.

Pokud už tam jsou, můžeš [v tomto případě] použít ... -print0 | xargs -0 ....

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.