|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Maxim Grigoryev 2:462/177.10 29 Aug 2002 01:14:08 To : All Subject : n-bytes symbols -------------------------------------------------------------------------------- Activestate perl v5.6.1 Имеется файл test.txt с таким текстом: *****************************begin****************************** ( 1 , 2 ) =>...0.B.0 ( 2 , 0 ) =>...5.G.5.@.8.=.:.0 "...;.8.1.8 P a r t y " . ...K.A.B.C.?.;.5.=.8.5 ...8.<.K ...;.8.<.0.H.5.=.:.> .8 .3.@.C.?.?.K "...;.8.1.8 " *****************************end******************************** Хочу перл скриптом убрать все "левые" (больше чем один байт) символы. Кроме такого пока ничего не смог придумать: $file='test.txt'; $file1='test3.txt'; my $symbol= q{ [\x00-\xFF] #(один байт/символ) }; open(F,"<$file")|| die "Cannot open $file $!\n"; open(G,">$file1")|| die "Cannot open $file1 $!\n"; binmode(F) || die "Cannot binmode $file $!\n"; @D=<F>; foreach(@D) { @chars = /$symbol/gox; for my $char (@chars) { if (length($char) == 1) {print G $char; print $char;} #вывод на экран и в файл } } close(F); close(G); В итоге файл test3.txt содержит: *****************************begin****************************** ( 1 , 2 ) =>...0.B.0 ( 2 , 0 ) =>...5.G.5.@.8.=.:.0 "...;.8.1.8 P a r t y " . ...K.A.B.C.?.;.5.=.8.5 ...8.<.K ...;.8.<.0.H.5.=.:.> .8 .3.@.C.?.?.K "...;.8.1.8 " *****************************end******************************** те же символы что и раньше. Без binmode файл не читается даже до конца что делает невозможным дальнейшую обработку. Как все таки удалить "левые" символы ? --- WP/95 Rel 1.78E (215.0) Reg. * Origin: / ' Exit ' / (2:462/177.10) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3310bbda1203.html, оценка из 5, голосов 10
|