Portál AbcLinuxu, 9. května 2025 18:34

Dotaz: Nahrazeni textu

15.1.2010 09:43 meno
Nahrazeni textu
Přečteno: 308×
Odpovědět | Admin
Dobry den,

mam soubor, kde mam nahodne cisla ve formatu ddd, potreboval bych tohle cislo nahradit vyrazem [tag]ddd[/tag]. Pokousel jsem to resit prikazem sed, ale nepodarilo se mi prijit, jak na to. Byl by tu nekdo ochotny mi poradit. Diky

Ř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

15.1.2010 09:51 fraxinus | skóre: 20 | blog: fraxinus
Rozbalit Rozbalit vše Re: Nahrazeni textu
Odpovědět | | Sbalit | Link | Blokovat | Admin
cat cisla | sed 's/^/[tag]/;s/$/[\/tag]/'
15.1.2010 10:20 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Nahrazeni textu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Ze zadání není moc jasné, co přesně znamená "náhodně čísla ve formátu ddd". Takže při jednom možném výkladu třeba

  sed -re 's_[0-9]{3}_[tag]&[/tag]_g'
  sed -re 's_[0-9]{3,}_[tag]&[/tag]_g'
  sed -re 's_[0-9]+_[tag]&[/tag]_g'
15.1.2010 10:54 meno
Rozbalit Rozbalit vše Re: Nahrazeni textu
sed -re 's_[0-9]{3}_[tag]&[/tag]_g'

to je presne ono, co jsem hledal. Dekuji, usetril jste mi spustu casu.
15.1.2010 11:01 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Nahrazeni textu
Lze to samozřejmě přepsat i bez použití přepínače -r, ale bez mučení přiznávám, že mne nebaví pořád přemýšlet, kde mají být u BRE backslashe a kde ne.

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.