пиоск по всем файлам в папке

Discussion in 'Песочница' started by dondy, 5 Aug 2015.

  1. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    хочу определенные совпадения искать по лог файлам, их очень много и у всех разные имена
    расширение .txt
    все логи писались в строку

    как открыть все файлы с расширением txt, провести по ним поиск на совпадения в строках и вывести все строки с совпадениями ?
    мой вариант работает только с одним файлом :(
    PHP:
    <?php
      $searchthis 
    "user";
      
    $matches = array();
      
    $handle = @fopen("log2015-08-04-02-13-18.txt""r");
        if (
    $handle)
            {
             while (!
    feof($handle))
                {
                
    $buffer fgets($handle);
                if(
    strpos($buffer$searchthis) !== FALSE)
                
    $matches[] = $buffer;
                }
            
    fclose($handle);
            }

      
    print_r($matches);
    ?>
     
  2. binarymaster

    binarymaster Elder - Старейшина

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    PHP:
    $searchthis "user";
    $matches = array();
    $dir 'logs/';
    foreach(
    glob($dir '*.txt') as $filename) {
      
    $handle = @fopen($filename"r");
      if (
    $handle)
      {
        while (!
    feof($handle))
        {
          
    $buffer fgets($handle);
          if(
    strpos($buffer$searchthis) !== FALSE$matches[] = $filename ': ' $buffer;
        }
        
    fclose($handle);
      }
    }
    print_r($matches);
     
    Payer and dondy like this.
  3. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
  4. Sagittarius

    Sagittarius Member

    Joined:
    29 Jul 2015
    Messages:
    18
    Likes Received:
    6
    Reputations:
    0
    Извиняюсь за быдлокодинг, за минуту накидал. На питоне как-то так.
    Code:
    import os
    search = "phrase"
    for fl in os.listdir("./"):
        if fl[-4:] == ".txt":
            for line in open(fl,"r"):
                if search in line: 
                    print(line)
    
     
Loading...
Similar Threads - пиоск файлам папке
  1. Loents
    Replies:
    14
    Views:
    2,726