Cet article utilisera les commandes php et linux sort pour réaliser respectivement la déduplication et le tri du contenu des fichiers, et fournira un code de démonstration complet.
Écrivez 1000000 nombres, un nombre par ligne
<?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 = ''; } }?>
Affichez le nombre de lignes dans le fichier
wc -l user_id.txt 1000000 user_id.txt
Comme il doit traiter 1 000 000 lignes de données, la mémoire disponible pour php est définie sur 256 m
pour éviter une mémoire insuffisante lors de l'exécution.<?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);?>
wc -l php_sort_user_id.txt 632042 php_sort_user_id.txt head php_sort_user_id.txt 012357891112...
Format :
sort [OPTION]... [FILE]...
Description du paramètre :
-u
Déduplication-n
Type de tri numérique-r
Ordre décroissant-o
Chemin du fichier de sortie
sort -uno linux_sort_user_id.txt user_id.txt
wc -l linux_sort_user_id.txt 632042 linux_sort_user_id.txt head linux_sort_user_id.txt 012357891112...
Cet article utilisera les commandes php et linux sort
pour réaliser respectivement la déduplication et le tri du contenu des fichiers, et fournira un code de démonstration complet. Cet article explique le contenu associé à la déduplication et au tri du contenu des fichiers. Pour plus d'informations, veuillez faire attention au site Web PHP chinois. Recommandations associées :Interprétation des problèmes de configuration MySQL sensibles à la casse
Comment utiliser PHP pour fusionner des tableaux et conserver les valeurs clés
Comment utiliser phpcurl pour implémenter des classes de fichiers de téléchargement multi-processus
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!