Regularni vyraz - binarni kod
Alexandr Malusek
malusek na hroch.ujf.cas.cz
Pátek Září 8 11:35:20 CEST 2000
hilovsky na unipo.sk (=?iso-8859-2?B?SnVyYWogSGm1b3Zza/0=?=) writes:
> > Potrebuji nahradit v souboru jisty znak za jiny. Nejvhodnejsi asi
> > bude notoricky znama konstrukce "sed 's/co/cim/g'". Problem je ale v
> > tom, ze hledany retezec nedokazu zapsat - jde o dve binarni nuly.
V textovem editoru (napr. v emacsu pres Ctrl-q Ctrl-@) je mozne
zapsat do souboru z1.sed napr:
s/^@^@/MMM/g
Sed se pak spusti:
$ sed -f z1.sed < file
Muzete si overit, ze to nefunguje - problem je v sedu (GNU sed 3.02),
ktery tuto substituci neumi (jine kontrolni znaky zvlada). Zajimave
je, ze se to da obejit pres perl:
$ s2p z1.sed > z1.pl # provede konverzi do perlu
$ perl z1.pl < file # provede substituci
> Mam dojem, ze do regularneho vyrazu sa to neda zadat.
Da se to zapsat bud primo, viz vyse, nebo jako oktalove cislo
\000. GNU sed ale tuto syntaxi nezna.
> Pre takyto zapis by mal byt subor otvoreny binarny pre citanie aj
> zapis. napr.
Rozlisovani binarni - textove soubory je zalezitost MS-Dosu a MS-Win,
v Unixu se nelisi (souvisi to s interpretaci '\n' v libc).
--
A. Malusek (malusek na ujf.cas.cz)
UJF AV CR
Další informace o konferenci Linux