Portál AbcLinuxu, 6. května 2025 09:18
[^/]
by měl vybrat vše co není znak /
Příklad:
echo -e "/test/aaa\xffbbb" | sed -z 's|aaa[^/]bbb|eee|'
nevypíše mnou očekávané: /test/eee
Je to chyba příkazu sed?
Řešení dotazu:
echo -e "/test/aaa\xffbbb" | LANG=C sed -z 's|aaa[^/]bbb|eee|'
0xc0, 0xc1, 0xe0, 0xf0, 0xf5 až 0xff
Podle mne by "sed" mohl namapovat těch 15 bajtu jako přílepek k unicode rozsahu U+10FFFF = (nebo kolik je jich zrovna v mode).
Takhle asi pokud budu chtít obecný utf8 regexp na výběr "fajlů", si budu muset pomoct namapováním na aktuálně nepoužité unicode znaky a) v textu cestě k fajlu, b) v textu regexpu (což asi není snadno realizovatelné).
Jinak děkuji za nápovědu - původně sem chtěl rozebrat cestu k fajlu, David.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.