Portál AbcLinuxu, 10. května 2025 08:17

Dotaz: Lze vytáhnout řetězec, který obsahuje dlouhý pokaždé jiný řádek?

4.12.2009 15:26 FrantaS | skóre: 12 | Hlučín
Lze vytáhnout řetězec, který obsahuje dlouhý pokaždé jiný řádek?
Přečteno: 225×
Odpovědět | Admin
Vygrepuji částečně pomocí regulárních výrazů, že řádek požadovaný text obsahuje, netuším jak rozumně tento text, který bude taky pokaždé jiný, vytáhnout. Umazaváním znaků z obou stran by asi trvalo příliš dlouho. I půlení textu by asi trvalo dlouho. Řádek obvykle obsahuje cca 2 až 5 tis. znaků a vytáhnout je třeba cca 100 až 300 znaků. Má to v bashi řešení? Jak? Díky předem.
Ať se nám daří.

Řešení dotazu:


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

Odpovědi

elenril avatar 4.12.2009 15:31 elenril | skóre: 21 | blog: Raziel
Rozbalit Rozbalit vše Re: Lze vytáhnout řetězec, který obsahuje dlouhý pokaždé jiný řádek?
Odpovědět | | Sbalit | Link | Blokovat | Admin
man grep
[...]
 -o, --only-matching
              Print only the matched (non-empty) parts of a matching line, with each such part on
              a separate output line.
tohle?
4.12.2009 16:35 FrantaS | skóre: 12 | Hlučín
Rozbalit Rozbalit vše Re: Lze vytáhnout řetězec, který obsahuje dlouhý pokaždé jiný řádek?
Díky, to by bylo super. Ale mám verzi 2.5.4-r1 a v manu nic takového nemám. Vzpomněl jsem si, že existuje taky egrep. Tam to je, díky moc, to bude určitě ono.
Ať se nám daří.
5.12.2009 10:36 l4m4
Rozbalit Rozbalit vše Re: Lze vytáhnout řetězec, který obsahuje dlouhý pokaždé jiný řádek?
Jsi na Linuxu, nebo na nějakém Unixu? GNU grep má tuhle volbu ... no, co pamatuji, a grep a egrep je na Linuxu normálně týž program (GNU grep) a s touž manuálovou stránkou.
6.12.2009 01:24 FrantaS | skóre: 12 | Hlučín
Rozbalit Rozbalit vše Re: Lze vytáhnout řetězec, který obsahuje dlouhý pokaždé jiný řádek?
Jsem na Linuxu. Manuálová stránka je jiná. Nebo neumím číst nebo něčemu nerozumím. Znovu jsem kouknul. egrep má manuál Anglický, grep ceský. egrep má mnohem více stránek. Oba manuály říkají, že jde o manuálovou stránku GREP(1). grep uvádí 2000/02/26, egrep 2008-02-07.
Ať se nám daří.
6.12.2009 09:15 l4m4
Rozbalit Rozbalit vše Re: Lze vytáhnout řetězec, který obsahuje dlouhý pokaždé jiný řádek?
Aha, českou. Aniž se se chci navážet do lidí, co ty manuálové stránky překládali, tak jsou už často mimo realitu. Nepoužívat. Volba -o existuje od roku 2001 (což mě překvapilo, protože bych si měl ještě dobře pamatovat GNU grep bez ní).
4.12.2009 15:43 l4m4
Rozbalit Rozbalit vše Re: Lze vytáhnout řetězec, který obsahuje dlouhý pokaždé jiný řádek?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Opravdu to musíš naprogramovat v bashi, nebo můžeš použít grep?
4.12.2009 21:06 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Lze vytáhnout řetězec, který obsahuje dlouhý pokaždé jiný řádek?
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed 's/^.*\(matchre\).*$/\1/'
In Ada the typical infinite loop would normally be terminated by detonation.

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.