Heim > Artikel > Backend-Entwicklung > Beispielcode-Freigabe für PHP zur Implementierung der Deduplizierung und Sortierung von Dateiinhalten
In diesem Artikel werden die Befehle php und linux sort verwendet, um die Deduplizierung bzw. Sortierung von Dateiinhalten zu erreichen, und einen vollständigen Demonstrationscode bereitstellen.
schreiben Sie 1000000 Zahlen, eine Zahl pro Zeile
<?php $file = 'user_id.txt'; $num = 1000000; $tmp = ''; for($i=0; $i<$num; $i++){ $tmp .= mt_rand(0,999999).PHP_EOL; if($i>0 && $i%1000==0 || $i==$num-1){ file_put_contents($file, $tmp, FILE_APPEND); $tmp = ''; } }?>
Zeigen Sie die Anzahl der Dateizeilen an
wc -l user_id.txt 1000000 user_id.txt
Da es 1000000 Datenzeilen verarbeiten muss, ist der für PHP verfügbare Speicher erforderlich ist auf 256m eingestellt, um zu verhindern, dass während der Ausführung nicht genügend Speicher vorhanden ist.
<?php/** * 文件内容去重及排序 * @param String $source 源文件 * @param String $dest 目标文件 * @param String $order 排序顺序 * @param Int $sort_flag 排序类型 */function fileUniSort($source, $dest, $order='asc', $sort_flag=SORT_NUMERIC){ // 读取文件内容 $file_data = file_get_contents($source); // 文件内容按行分割为数组 $file_data_arr = explode(PHP_EOL, $file_data); // 去除空行数据 $file_data_arr = array_filter($file_data_arr, 'filter'); // 去重 $file_data_arr = array_flip($file_data_arr); $file_data_arr = array_flip($file_data_arr); // 排序 if($order=='asc'){ sort($file_data_arr, $sort_flag); }else{ rsort($file_data_arr, $sort_flag); } // 数组合拼为文件内容 $file_data = implode(PHP_EOL, $file_data_arr).PHP_EOL; // 写入文件 file_put_contents($dest, $file_data, true); }// 过滤空行function filter($data){ if(!$data && $data!=='0'){ return false; } return true; }// 设置可使用内存为256mini_set('memory_limit', '256m');$source = 'user_id.txt';$dest = 'php_sort_user_id.txt'; fileUniSort($source, $dest);?>
Deduplizierte und sortierte Dateien anzeigen
wc -l php_sort_user_id.txt 632042 php_sort_user_id.txt head php_sort_user_id.txt 012357891112...
Der Linux-Sortierbefehl wird zum Sortieren von Textdateien verwendet Zeilensortierung
Format:
sort [OPTION]... [FILE]...
Parameterbeschreibung:
-u Deduplizierung
-n Numerischer Sortiertyp
-r Absteigende Reihenfolge
-o Ausgabedateipfad
Verwendung sort, um Deduplizierung und Sortierung durchzuführen
sort -uno linux_sort_user_id.txt user_id.txt
Deduplizierte und sortierte Dateien anzeigen
wc -l linux_sort_user_id.txt 632042 linux_sort_user_id.txt head linux_sort_user_id.txt 012357891112...
Zusammenfassung: Dies kann mit dem PHP- oder Linux-Sortierbefehl erreicht werden Die Ausführungszeit der Dateideduplizierung und -sortierung unterscheidet sich nicht wesentlich, es wird jedoch empfohlen, dass es für Dateivorgänge einfacher ist, Systembefehle direkt zu verwenden.
In diesem Artikel werden die Befehle php und linux sort verwendet, um die Deduplizierung bzw. Sortierung von Dateiinhalten zu erreichen, und einen vollständigen Demonstrationscode bereitstellen.
Das obige ist der detaillierte Inhalt vonBeispielcode-Freigabe für PHP zur Implementierung der Deduplizierung und Sortierung von Dateiinhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!