Czy istnieje taka funkcja w PHP, która robi grep -f filename w systemach unix/linux. Jeśli nie ma, to jakie funkcje/narzędzia PHP pomogłyby w stworzeniu niestandardowej metody/funkcji do tego. Dzięki!grep z -f jak w PHP
Odpowiedz
Właściwie IMHO, powiedziałbym, że to, co następuje:
$result = preg_grep($pattern, file($path));
Zobacz preg_grep
Docs i file
Docs.
Jeśli trzeba zrobić (rekurencyjnie) przez zestaw plików, istnieje również glob
i foreach
lub (Recursive
) DirectoryIterator
lub GlobIterator
Docs i nie zapomnieć o RegexIterator
Docs.
Przykład z SplFileObject i RegexIterator:
$stream = new SplFileObject($file);
$grepped = new RegexIterator($stream, $pattern);
foreach ($grepped as $line) {
echo $line;
}
wyjściowego (wszystkie linie $file
zawierające $ wzorca):
$grepped = new RegexIterator($stream, $pattern);
foreach ($grepped as $line) {
echo $line;
}
Demo: https://eval.in/208699
Możesz połączyć funkcję file_get_contens(), aby otworzyć plik i funkcję preg_match_all(), aby przechwytywać zawartość za pomocą wyrażenia regularnego.
$file = file_get_contents ('path/to/file.ext');
preg_match_all ('regex_pattern_here', $file, $matches);
print_r ($matches);
Używam 'file_get_contents()', ale nie działa sporadycznie. – FractalSpace
- 1. Ogon -f + grep?
- 2. PowerShell odpowiednik grep -f
- 3. O 'grep -f': wzór dopasowania z plikiem
- 4. Szybka alternatywa do grep -f
- 5. grep -f na OS X produkuje segfault
- 6. Jak grep z listą słów
- 7. -f grep na plikach w formacie skompresowanym folderze
- 8. Jak korzystać z POSIXLY_CORRECT w grep?
- 9. Poczta PHP: Co robi -f?
- 10. php do analizy ps aux | grep ... wyniki
- 11. Jak grep the git diff?
- 12. ogon -f do grep do cięcia nie działa prawidłowo
- 13. Jak potokować -f w awk
- 14. Jak uniknąć nawiasów w grep
- 15. Jak mam grep w R?
- 16. F # pętli w F #
- 17. grep z negatywnym wzorem
- 18. Jak grep i zastąpić
- 19. Grep z cudzysłowem
- 20. ogon z grep zdalnych plików dziennika
- 21. Jak zrobić "grep" odczytać wzorce z pliku?
- 22. Jak przekazać wyjście z grep do sed?
- 23. Jak radzić sobie z IEnumerable w F #?
- 24. Jak wywołać metody z konstruktora w F #
- 25. Jak zwrócić jednostkę z wyrażeń w f #
- 26. dopasowując linię z dosłownym gwiazdką "*" w grep
- 27. Wybieranie plików wynikowych z grep w vim
- 28. Cytaty podczas korzystania z grep?
- 29. Jak używać grup bez przechwytywania w grep?
- 30. PowerShell: jak wyświetlić polecenie grep?
Chociaż jest to równoważne funkcjonalnie, ładuje cały plik do pamięci, podczas gdy grep z linii poleceń nie. – cmc
@cmd: Tak, jeśli chcesz zaoszczędzić pamięć, rozważ [** SplFileObject **] (http://php.net/SplFileObject) i [** RegexIterator **] (http://php.net/ RegexIterator). – hakre
brzmi dobrze! ... nie miałbyś takiego przykładu, który byłby zamiennikiem dla preg_grep ($ pattern, file ($ path))? – cmc