Portál AbcLinuxu, 10. května 2024 14:12


Dotaz: sed: odstranění opakovaného výrazu

24.1.2005 15:46 Robert Krátký | skóre: 94 | blog: Robertův bloček
sed: odstranění opakovaného výrazu
Přečteno: 129×
Odpovědět | Admin
Rád bych s pomocí sedu vyřešil následující problém:

Vyhledat a odstranit opakovaný výskyt předem neznámého výrazu.

Příklad vstupu:
první pondělí - druhé pondělí
druhé pondělí - druhé pondělí
první pondělí - první středa
druhé úterý - druhé úterý
A požadovaný výstup:
první pondělí - druhé pondělí
druhé pondělí
první pondělí - první středa
druhé úterý
Bohužel vůbec nemám představu, jak na to jít. Klasické odchycení opakovaného výrazu \{2\} nemohu použít, protože dopředu nevím, o jakou kombinaci půjde.

Díky za postrčení správným směrem.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.1.2005 15:50 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: sed: odstranění opakovaného výrazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Od oka:
sed 's/^\(.*\) - \1/\1/'
Případně .* nahradit něčím méně "agresivním".
24.1.2005 16:06 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: sed: odstranění opakovaného výrazu
Elementary, my dear Watson...

Vůbec mě nenapadlo, že mohu použít \n už v rámci pattern space. Díky.

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.