Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > помогите распарсить текстовый файл


Автор: FreeGanzter 21.2.2018, 09:30
пожалуйста помогите
нужно из файла .txt вытащить все cтроки которые повторяются не меньше 2ух раз остальное удалить и удалить все строки которые состоят не из английских букв и цифр то  есть если в стоке есть  + или  удаляем строку
результат сохроняем
в файл .txt вот такой вот формат списка

fdsfsdffsdf
fsfsdfsdf
fdsfsdf
fdsfsdfsdf
fsdfsdfsdf
помогите пожалуйста

Автор: arto 22.2.2018, 08:14
my%h=map{$_=>1} grep{++$h{$_}>1&&m#^[[:alnum:]]+$#}<STDIN>;print keys%h

Автор: tishaishii 12.9.2018, 20:11
Предыдущий код не сработает из-за переводов на новую строку в STDIN. Да и $h{...}++ срабатывает раньше объявления %h.
Код

my %h ;

$, = "\n" ;

print keys %{ {
    map {
        $_ => undef
    } grep {
        $h{ $_ } > 1
    } map {
        m{^([A-Za-z0-9]+)\s*$}os and $h{ $1 } ++ ; $1 ;
    } <>
} } ;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)