Jump to content

Как удалить повторяющиеся строки


Recommended Posts

Приветствую! Если txt файл, в нем 80 000 строк. Не все строки уникальные, и это нормально. Допускается не более 4х повторений одной строки. Но проблема в том, что некоторые строки повторяются 20 раз. Задача: удалить все повторения, которых больше 4х. Как это сделать?

Link to post
Share on other sites
15 минут назад, magiklove1 сказал:

Приветствую! Если txt файл, в нем 80 000 строк. Не все строки уникальные, и это нормально. Допускается не более 4х повторений одной строки. Но проблема в том, что некоторые строки повторяются 20 раз. Задача: удалить все повторения, которых больше 4х. Как это сделать?

Если, можно, чтобы все строки были уникальные, то можно в exel убрать все дубликаты (Данные-Удалить дубликаты)

Link to post
Share on other sites
2 минуты назад, serzh82 сказал:

Если, можно, чтобы все строки были уникальные, то можно в exel убрать все дубликаты (Данные-Удалить дубликаты)

Строки должны повторяться, но не более 4х раз

Link to post
Share on other sites
$in = fopen( 'input.txt', 'r' );
if ( $in ) {
    $arr = array();
    while ( ($line = fgets( $in )) !== false ) {
	$arr[$line][] = trim($line);
    }
    fclose( $in );
    $out = fopen( 'output.txt', 'a' );
    foreach ( $arr as &$value ) {
	if ( count( $value ) > 4 ) {
	    $value = array_slice( $value, 0, 4 );
	}
	foreach ( $value as $data ) {
	    $data .= PHP_EOL;
	    fwrite( $out, $data );
	}
    }
    fclose( $out );
}

PHP-говнокод на скорую руку.

Только вывод будет сгруппирован по строкам.

P.S. код не тестировал.

 

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...