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íží...
dnes 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ářů: 0
dnes 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ářů: 0
včera 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ářů: 5
včera 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ářů: 31
včera 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ářů: 9
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
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 25
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 17
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

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

Dotaz: sed - smazani newline

6.4.2009 15:29 Elijen
sed - smazani newline
Přečteno: 1569×

Zdravim,

poradil byste nekdo prosim jak pomoci sedu smazu vsechny nove radky? Vim ze by to slo udelat pomoci tr mnohem jednoduseji, ale chtel bych vedet jak na to v sedu.

Teprve dneska jsem se dozvedel ze existuje neco jako hold space, ale vubec me to neposloucha ;-)

Odpovědi

Tarmaq avatar 6.4.2009 15:54 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: sed - smazani newline
Zkus tohle:
sed '/^$/d'
Don't panic!
6.4.2009 15:58 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: sed - smazani newline
Třeba takhle (nakrmte přes STDIN nebo ze souboru argumentem příkazové řádky):
sed -ne '1{h;n;}
H
${g;s#\n# #g;p;}'
6.4.2009 16:00 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: sed - smazani newline
Aha, koukám na příspěvek výše, a koukám, že má nejistota, jestli to správně chápu, byla na místě. Chcete odstranit znak "nový řádek" nebo jenom odstranit prázdné řádky? Nebo ještě něco jiného?
Tarmaq avatar 6.4.2009 16:29 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: sed - smazani newline
taky jsem si nebyl uplne jisty z dotazu autora, ale myslim ze chce odstranit prazdne radky ;]
nejjistejsi ale bude, kdyz nam odpovi sam
Don't panic!
6.4.2009 16:34 l4m4
Rozbalit Rozbalit vše Re: sed - smazani newline
Nebo odstranit řádky, které nejsou staré...

IMO odstranění řádků vyhovujících nějaké podmínce není úkol, k nemuž by člověka typicky napadlo použít hold space, takže bych se přikláněl k odstraňování \n. I když kdo ví...
6.4.2009 17:30 Elijen
Rozbalit Rozbalit vše Re: sed - smazani newline

Omlouvam se za spatnou formulaci dotazu :-)

To co chci je zkratka vymazat vsechny vyskyty "\n" ... tedy by mela vzniknout jedna dlouha radka, kterou dale budu parsovat.

sed -ne '1{h;n;}
H
${g;s#\n# #g;p;}'

Zda se, ze toto pracuje, jak bych chtel, dekuji mnohokrat. Mohl byste prosim jeste vysvetlit jak to funguje? Neni mi jasne kdy a proc nastava okamzik ze mohu pouzit s/\n/ /g, ktery bezne nefunguje.

6.4.2009 17:51 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: sed - smazani newline
První řádek se provede pouze pro první řádek vstupu: vloží jej do "hold spacu" a skočí přeskočí na zpracovávání dalšího záznamu. Druhý řádek pak přidá každý další řádek do "hold spacu". Tahle konstrukce (místo prostého H bez rozlišení řádku je tam proto, abyste nezačal celý "hold space" prázdným řádkem.

Třetí řádek se provede až u poslední položky na vstupu. Po přidání řádku do "hold spacu" si pomocí g vložíte vše, co jste si odložil do aktuálně zpracovávaného prostoru, nahradíte ty nové řádky (s) a výsledek vytisknete (p).

Jde to i bez "hold space" použitím příkazů pro práci s více řádky, ale když už jste je zmiňoval, tak proč je neukázat v praxi. ;)
6.4.2009 19:28 Elijen
Rozbalit Rozbalit vše Re: sed - smazani newline
Chápu-li to správně, tak důvod, proč to funguje je ten, že když z hold space zkopíruji obsah do pattern space, tak sed zpracovává celý obsah pattern space jako by to byl jeden řádek?
6.4.2009 23:25 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: sed - smazani newline
Ano, po příkazu g/x (a svým způsobem G) zpracováváte to, co bylo do teď uloženo v "hold space". Když to bylo více naakumulovaných řádků, tak je máte na talíři všechny včetně "new line" mezi nimi.
7.4.2009 10:46 l4m4
Rozbalit Rozbalit vše Re: sed - smazani newline
K tomu ovšem není třeba používat hold space, viz moje řešení: prostě se všechno naráz načte do pattern space, odstraní \n a vypíše.
8.4.2009 18:06 Elijen
Rozbalit Rozbalit vše Re: sed - smazani newline
Nicméně Vaše řešení mi nefunguje ;) ... výstup vypadá nepozměněn.
9.4.2009 10:51 l4m4
Rozbalit Rozbalit vše Re: sed - smazani newline
$ sed --version
GNU sed version 4.1.5
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.
$ sed --version | sed ':a ${s/\n//g;t;};N;ba'
GNU sed version 4.1.5Copyright (C) 2003 Free Software Foundation, Inc.This is free software; see the source for copying conditions.  There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,to the extent permitted by law.
6.4.2009 16:27 l4m4
Rozbalit Rozbalit vše Re: sed - smazani newline
sed ':a ${s/\n//g;t;};N;ba'

I když toto tedy vypíše \n úplně na konci všeho...
8.4.2009 21:00 MARION | Zlín
Rozbalit Rozbalit vše Re: sed - smazani newline
sed '/^$/d' soubor vymaze vsechny prazdne radky. Poradi nekdo jak zaridit, aby vsechny se po sobe jdouci prazdne radky zredukovaly na jeden? Tzn kazda dira mezi radky by se "smrskla" na jediny prazdny radek.
9.4.2009 09:54 deadmail
Rozbalit Rozbalit vše Re: sed - smazani newline
napriklad cez awk ;-)
awk '/^$/{while (match($0,/^$/) && getline);print ""};/./{print}' 
9.4.2009 10:03 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: sed - smazani newline
Stačí trochu přiohnout řešení uvedené výše - místo nahrazení konce řádku nahradíme po sobě jdoucí konce řádků jedním:
sed -ne '1{h;n;}
H
${g;s#\n\n\n*#\n\n#g;p;}'
I am always ready to learn although I do not always like to be taught. (W. Churchill)
9.4.2009 12:43 deadmail
Rozbalit Rozbalit vše Re: sed - smazani newline
vysledky uvedenych prikazov awk a sed sa lisia ak je viac prazdnych riadkov na zaciatku a/alebo na konci vstupu. Awk vypise aj tam iba jediny prazdny riadok :-) .
12.4.2009 16:38 Elijen
Rozbalit Rozbalit vše Re: sed - smazani newline

Děkuji všem za rady, už to chápu ... nicméně mám daší problém ;) Na vstupu mám text, jež je (logicky) rozdělen do určitých bloků (každý blok končí řádkem na němž je pouze "."). A já bych chtěl, pomocí sedu tyto bloky vypsat odzadu - poslední, předposlední, ... (pořadí řádků v blocích se nemění). Nevíte někdo prosím, kde je chyba?

#!/usr/bin/sed -f
N
/^\.$/{x;H}
${x;p}

Skript spouštím s parametrem -n ... na výstupu se nic neobjěví ;(


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.