abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
včera 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 0
včera 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 1
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 26
6.12. 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 50
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 17
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (23%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 788 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: výpis n-tého řádku

15.6.2006 14:01 Filip Jirsák | skóre: 66 | blog: Fa & Bi
výpis n-tého řádku
Přečteno: 456×
Existuje nějaký filtr (jako head, tail apod.), který by uměl vypsat každý n-tý řádek? Nebo dokonce třeba každou sekundu vypsal poslední řádek, který dostal na vstupu? Napsat to třeba v Pythonu by nebyl problém, ale žíkám si, že už to musí existovat…

K čemu bych to potřeboval? Některé programy mají jen dvě volby 2: buď něco dělá, ale nevypisuje nic, nebo vypisuje info třeba o každém zpracovávaném souboru. Např. cp kopíruje a kopíruje a nezbývá, než čekat až (zda) skončí. Naproti tomu cp -v vypisuje název každého kopírovaného souboru. Což při vzdáleném připojení přes ssh taky není úplně ono… Líbilo by se mi přesměrovat výstup cp -v do nějakého filtru, který by vypsal třeba každý stý řádek. Takže bych věděl, že se něco děje, případně bych dokázal zjistit, kde se kopírování zaseklo, ale neposílal by se mi zbytečně dlouhatánský výpis.

Odpovědi

David Watzke avatar 15.6.2006 14:03 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
cp -g?
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
15.6.2006 14:05 Aleš Kapica | skóre: 45 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Co třeba se nejdřív kouknout do FAQ? - http://www.abclinuxu.cz/faq/skripty/vyhledavani-v-linuxu
15.6.2006 14:09 Aleš Kapica | skóre: 45 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Jinak ještě pro doplnění:
tail -f /cesta/k/souboru_kde_mi_na_konci_pribyvaji_radky 
Tím souborem může být třeba log, nebo přesměrovaný výstup, atd. atd.. Je tolik možností a variant...
15.6.2006 15:21 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Jenom škoda, že v tom streamu nic nehledám, to bych pak tento konkrétní FAQ třeba i použil… tail -f vypisuje data, která byla do streamu přidána od posledního výpisu, tj. vypíše je všechna. Takže psát
cat soubor.txt | tail -f
vyjde nastejno, jako
cat soubor.txt
akorát je to daleko složitější a neefektivnější.

Ale jinak díky za snahu ;-)
15.6.2006 14:08 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
sed?
      first~step
              Match every step'th line starting with line first.  For example,
              ``sed -n 1~2p'' will print all the  odd-numbered  lines  in  the
              input  stream,  and the address 2~5 will match every fifth line,
              starting with the second. (This is an extension.)
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
15.6.2006 15:06 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Dík, to bude ono. Myslel jsem, že na to bude nějaká jednoúčelová utilitka, sed zrovna nemusím :-) Ale darovanému koni na zuby nekoukej ;-) S tím výpisem v pravidelném časovém intervalu jsem si už asi navymýšlel moc, jdu oprášit své znalosti Pythonu :-)
15.6.2006 14:09 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Sed snad zná adresu ve tvaru start~step.
15.6.2006 14:10 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Pošlete-li tomuto skriptu výpis přes rouru, vypíše každý desátý řádek.
#!/bin/bash
let I=0
while read line; do
  let I++
  if [ $I -eq 10 ]; then
    let I=0
    echo $line
  fi
done
15.6.2006 14:20 Aleš Kapica | skóre: 45 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Je to fakt blbina, ale tohle ti udělá úplně totéž:
sed -n '{n;n;n;n;n;n;n;n;n;p}' zdroj_radku.txt
Pro hůř chápavé:
cat zdroj_radku.txt | sed -n '{n;n;n;n;n;n;n;n;n;p}'
David Watzke avatar 15.6.2006 14:22 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Pro hůř chápavé přidejme zbytečně delší variantu ;-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
15.6.2006 14:30 Aleš Kapica | skóre: 45 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Teda nemyslel jsem si, že hůř chápavý budeš zrovna ty. Cílem bylo ukázat že není nutno příkaz set aplikovat pouze na soubor, ale že jej lze použít i na proud dat. ;-) A že to je dlouhé? No jasně, když chce někdo vypsat pouze každý desátý řádek, tak musí uvést at udělá sed devětkrát hop (n). Možná to tedy jde zapsat i nějak jednodušeji (9 x n ?) ale nechce se mi to hledat.
David Watzke avatar 15.6.2006 19:25 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Tak jsem to nemyslel. Možná to jde zapsat nějak snadněji, ale proč přidávat i prasečí variantu s catem? Abys ukázal že jej lze použít i na proud dat? No, ono by se od programu jménem Stream editor, řekl bych, dalo očekávat, že umí pracovat s proudem dat :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
15.6.2006 14:10 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
# vypis $N riadkov zacinajuc riadkom $R
tail +$R | head -$N
Josef Kufner avatar 15.6.2006 15:15 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
awk 'NR % 2 == 0 {print $0}' <odkud >kam
Hello world ! Segmentation fault (core dumped)
15.6.2006 15:19 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Ano, řešení existuje spousta - sed, perl, python, bash, tail ... ale všimli jste si, že žádné z nich nefunguje? Tedy v tom smyslu, aby to _průběžně_ vypisovalo přibývající řádky. Může za to (plné) bufferování standardního výstupu, které se zapíná vždy, když výstupem není terminál. Bohužel, vnějšími prostředky nelze donutit 'cp -v', aby při každém vypsaném řádku zavolalo fflush() nebo vždy používalo line-buffering. Když výstup z tohoto programu
#!/usr/bin/env python
import time, sys
for i in xrange(10):
    sys.stdout.write('%d\n' %i)
    sys.stdout.flush()
    time.sleep(1)
přesměruju tomuto programu
#!/usr/bin/env python
import sys

while True:
    line = sys.stdin.readline()
    if not line: break
    sys.stdout.write(line)
Tak se to bude vypisovat hezky postupně. Ale kdybych v tom prvním programu vynechal flush(), tak mám prostě smůlu.

Kéž bych se mýlil...
15.6.2006 15:28 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Bohužel je to s tím bufferováním pravda. A dělá to nejen cp. Stačí si vyzkoušet samotné
cp -v | less
nebo třeba
find … | less
Řádky se neobjevují postupně, ale vždy se objeví až celý kus výpisu najednou.

Asi se holt budu muset smířit s tím, že takovýhle výpis zbytečně zaplňuje obrazovku a přenáší se po síti…
15.6.2006 15:41 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: ýpis n-tého řádku
Dělají to tak všechny programy, u kterých se autor specificky nepostará, aby to bylo jinak. Což v praxi znamená drtivou většinu.:

At program startup, three streams are predefined and need not be opened explicitly:
* standard input (for reading conventional input),
* standard output (for writing conventional output), and
* standard error (for writing diagnostic output).
These streams are abbreviated stdin, stdout and stderr. Initially, the standard error stream is unbuffered; the standard input and output streams are fully buffered if and only if the streams do not refer to an interactive or ``terminal'' device, as determined by the isatty(3) function. In fact, all freshly-opened streams that refer to terminal devices default to line buffering, and pending output to such streams is written automatically whenever such an input stream is read.

Takže kdyby se dalo nějak zařídit, aby isatty() vracelo nulu ...
15.6.2006 18:50 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: výpis n-tého řádku
Protože pipeline vytváří shell, měl by to být zřejmě on, kdo je schopen nastavit příslušným streamům nějaké parametry. Hledal jsem to pro zsh, našel jsem stejný problém, jeho řešení je "úkrok stranou" – zsh to nejspíš neumí, odkazuje se tam na ptyget (autorem je DJB, což je snad záruka kvality), podívám se, co to umí…

Díky všem za rady. A taky díky adminům za přidání "v" do toho mého "ýpisu". Někdo mi ho musel cestou ukradnout, protože v náhledu určitě bylo ;-)

Založit nové vláknoNahoru

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

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.