Часто возникает необходимость убрать
повторы из текстовика. При сборке своего словаря, при парсинге
логов, баз. В общем, думаю, ты частенько сталкивался с такого
рода проблемой. Да, существует куча программ для работы со
словарями, толпы написанных парсеров и т.д., но мы пойдем другим
путем.
1. Решение через PHP.
Создаем php-парсер без наворотов. Комментарии я привел в
коде, думаю, там все понятно. Сортировка по алфавиту и удаление
повторов, это то, что в 90% случаев требуется сделать.
<?php
$file= file ('1.txt'); // файл на входе
sort ($file); // сортируем по алфавиту
$file = array_unique($file); // убираем повторы
foreach($file as $val){
$end .= $val ;
}
$out=fopen('2.txt','w'); // файл на выходе
fwrite($out,$end);
fclose($out);
?>
Файл, который нужно отпарсить, может быть и удаленным, и
задаваться следующим образом:
$file= file (‘http://127.0.0.1/1.txt’);
Главное, чтобы это позволили настройки PHP-интерпретатора.
2. Консольное решение.
Владельцам линухов заморачиваться со скриптами вообще не
требуется. Все давно реализовано в консоли:
cat 1.txt | sort | uniq > 2.txt
То же самое, разумеется, можно проделать в шелле, когда
отпарсить файл нужно «на месте».
<?php
$file= file (‘1.txt’); // файл на входе
sort ($file); // сортируем по алфавиту
$file = array_unique($file); // убираем повторы
foreach($file as $val){
$end .= $val ;
}
$out=fopen(‘2.txt’,’w’); // файл на выходе
fwrite($out,$end);
fclose($out);
?>