Portál AbcLinuxu, 25. dubna 2024 11:08


Dotaz: zamena znaku

1.9.2005 14:48 KANON
zamena znaku
Přečteno: 77×
Odpovědět | Admin
ahoj snazim se menit znaky s hackama a carkama na znaky decimalni a hexadecimalni. narazil jsem ale na problem s znamek &

kdyz dam

sed s/"ř"/"ř"/ seznam.txt [ukazuje to 2x ř ale to druhe ma byt & # 3 4 5 ;

tak mi to hezky vymeni ale bez znaku &

dalsi vec je zapsani do souboru

predpokladam to udelat pro vsechny znaky, ale nevim jestli je nejstastnejsi moje reseni

sed s/"ř"/"ř"/ seznam.txt > temp.txt sed s/"á"/"á"/ temp.txt > temp2.txt

sice bude ucine, ale urcite to de lehcejc nez vytrovit postupne 50 docasnejch souboru a pak je smazat. (zkousel jsem dat za prikaz SED vice retezcu na zmenu ale nejak se mi to nevedlo)

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

Odpovědi

1.9.2005 14:50 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: zamena znaku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ampersand v replacementu je zkratka pro zopakování nahrazovaného vzorku. Musíte před něj dát backslash.
1.9.2005 15:00 KANON
Rozbalit Rozbalit vše Re: zamena znaku
dekuji, znaky uz to nahrazuje vporadku
1.9.2005 16:33 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: zamena znaku
A co takhle perl
%t=('ř'=>'ř',
  'á'=>'...',
...
);
$k=join '|', keys %t;
while (<>) {
  s/$k/%t{$1}/goe;
  print
}
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
1.9.2005 16:36 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: zamena znaku
Kruci, chybička se vloudila.
-  s/$k/%t{$1}/goe;
+  s/($k)/%t{$1}/goe;
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
1.9.2005 16:39 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: zamena znaku
Kruci, já mám dneska den.
-  s/$k/%t{$1}/goe;
+  s/($k)/$t{$1}/goe;
nebo
-  s/$k/%t{$1}/goe;
+  s/$k/$t{$&}/goe;
přičemž druhá varianta může být pomalejší než první. Chtělo by to testnout.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
1.9.2005 15:12 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: zamena znaku
Odpovědět | | Sbalit | Link | Blokovat | Admin
K tomu druhému: dočasný soubor je nesmysl. Když už, tak aspoň takto:
  blabla | sed -e 's/aaa/bbb/g' | sed -e 's/ccc/ddd/g' | ...
V tomto konkrétním případě ale bude jednodušší
  blabla | sed -e 's/aaa/bbb/g' -e 's/ccc/ddd/g' ...

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.