Portál AbcLinuxu, 11. května 2025 05:07

Dotaz: Výpis adresáře (název,velikost,poslední změna) do tabulky

1.3.2015 11:55 Pavel
Výpis adresáře (název,velikost,poslední změna) do tabulky
Přečteno: 543×
Odpovědět | Admin

Zdravím. Potřeboval bych vypsat obsah adresáře se soubory takovým způsobem, aby v jednom sloupci byl název souboru, ve druhém jeho velikost a ve třetím datum a čas poslední změny. Na každém řádku tyto vlastnosti jednoho souboru. Měla by z toho vzniknout tabulka .xls pro další zpracování.

Zkoušel jsem to pomocí příkazu ls s různými parametry, ale nikdy se mi nedaří aby každá vlastnost (název, velikost, čas poslední změny) bylo v jednom samostatném sloupci. Hledal jsem v man ls, zkoušel vše možné, ale bohužel stále nic. Tak se omlouvám a byl bych rád, kdyby mi někdo poradil.

Díky.

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.3.2015 12:24 Jirka
Rozbalit Rozbalit vše Re: Výpis adresáře (název,velikost,poslední změna) do tabulky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Třeba takto:
ls -l --time-style="+%F %R"|awk '{print $8, $5, $6, $7}'
1.3.2015 13:06 Pavel
Rozbalit Rozbalit vše Re: Výpis adresáře (název,velikost,poslední změna) do tabulky
Díky za odpověď. Zkoušel jsem to, ale název souboru je několik slov oddělených mezerami, vždy se mi zobrazí jen první slovo. Potřeboval bych, aby v jednom sloupci byl celý název.

Např.

Pojedeme k moři.mkv (toto je celý název)

Vraždy v kruhu, Vražda s odpuštěním.mkv (toto je celý název)
Ty další kolonky mi fungují (velikost, datum poslední změny).
Díky
            
1.3.2015 13:11 RickettsialPox | skóre: 20 | Praha, Žižkov
Rozbalit Rozbalit vše Re: Výpis adresáře (název,velikost,poslední změna) do tabulky
Mě to dává celé názvy - tak nevím... :D
Největší prvek každého hrdinského činu je strach. Život definuji jako "/dev/life >> /dev/null".
1.3.2015 16:40 Jirka
Rozbalit Rozbalit vše Re: Výpis adresáře (název,velikost,poslední změna) do tabulky
Takhle:
ls -l --time-style="+%F %R"|awk '{for(i=8;i<=NF;i++){printf "%s ", $i}; print $5, $6, $7}'
wamba avatar 1.3.2015 13:09 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Výpis adresáře (název,velikost,poslední změna) do tabulky
Odpovědět | | Sbalit | Link | Blokovat | Admin
takhle nehezky v Perlu (vytvoří přímo CSV řádky)
perl -MText::CSV -MDateTime -E 'BEGIN{our $csv=Text::CSV->new({binary=>1,eol=> "$/"}); };while (glob("*")) { $csv->print(STDOUT, [@{[$_,stat($_)]}[0,8],DateTime->from_epoch(epoch=> ${[$_,stat($_)]}[11])])}'
This would have been so hard to fix when you don't know that there is in fact an easy fix.
1.3.2015 15:58 Pavel
Rozbalit Rozbalit vše Re: Výpis adresáře (název,velikost,poslední změna) do tabulky
Bohužel to nelze - perl not found.

Instalovat se tam nic nedá, je to MMC Openelec (XBMC).

Pořád se mi dělí ty názvy na jednotlivá slova, musí v tom být nějaká finta aby celý název byl v jednom sloupci.

1.3.2015 17:05 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Výpis adresáře (název,velikost,poslední změna) do tabulky
Odpovědět | | Sbalit | Link | Blokovat | Admin
find -printf "%-40f %9s %40Cc\n"
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
1.3.2015 17:45 Pavel
Rozbalit Rozbalit vše Re: Výpis adresáře (název,velikost,poslední změna) do tabulky
Díky moc.

Výše uvedeným příkazem to uložím do textového souboru.txt a potom vložím do souboru .xls. Musím to rozdělit na jednotlivé sloupce pomocí fixní šířky sloupce. To rozdělení se už ale dělá daleko lepší, než se to povedlo mě tj.

ls -C -l -t -r "/media/Data Windows/Zaznamy/"

Když to ale rovnou uložím do souboru .xls, zase je název a velikost a část času v jednom sloupci např.

Jaro 03+.JPG 1534003 Ne 1. březen 2015, 12

To výše je jeden sloupec v tabulce xls

Když by to nešlo tak já jsem spokojený i s tímto, už se to dá pomocí fixní šířky rozdělit na jednotlivé sloupce a pak vložit do tabulky.

1.3.2015 17:57 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Výpis adresáře (název,velikost,poslední změna) do tabulky
Také to můžeš oddělit třeba středníky
find -printf "%f;%s;%Cc\n"
a nacucnout to do Excelu jako CSV.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
2.3.2015 06:33 Pavel
Rozbalit Rozbalit vše Re: Výpis adresáře (název,velikost,poslední změna) do tabulky
Na jiném počítači to funguje bezvadně s těmi středníky a dá se to vložit do tabulky. Ale v MMC Openelec to nechce fungovat a napíše toto:

OpenELEC:~ # find "/media/Data Windows/Zaznamy/" -printf "%f;%s;%Cc\n" find: unrecognized: -printf BusyBox v1.22.1 (2014-07-08 19:15:19 CEST) multi-call binary. Usage: find [-HL] [PATH]... [OPTIONS] [ACTIONS] Search for files and perform actions on them. First failed action stops processing of current file. Defaults: PATH is current directory, action is '-print'

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.