Nasz dzienny plik danych waży średnio 2 GB. Pliki te są archiwizowane do pojedynczego pliku zip na koniec każdego miesiąca i przechowywane w udziale sieciowym. Od czasu do czasu mam potrzebę wyszukiwania określonych zapisów w tych plikach. Robię to, łącząc się przez zdalny pulpit z udostępnionym serwerem, rozpakowuję pliki do folderu tymczasowego, uruchamiam wyszukiwanie grep (lub PowerShell), a następnie usuwam folder tymczasowy. Teraz, ponieważ nasz serwer ma mało miejsca na dysku, nie jest już zalecane, aby rozpakować je wszystkie do folderu tymczasowego. Jaki jest skuteczny sposób wyszukiwania regex na tych spakowanych plikach przy minimalnym wpływie na zasoby dyskowe lub sieciowe?Jak mogę ustawić grep dla wzorca tekstowego w skompresowanym pliku tekstowym?
18
A
Odpowiedz
22
2
Istnieje kilka poleceń związanych z ZIP w Powershell Community Extensions (PSCX). Nie sądzę, żeby zrobili to, co chcesz (jednak mogłem się całkowicie mylić). Zamiast tego użyłbym .Zip Library Zip Library (DotNetZip), która pozwala w zasadzie wymienić nazwy plików w archiwum, a następnie wyodrębnić tylko te, które chcesz.
3
Polecenia (PSCX) obejmują cmdlety Read-Archive
i Expand-Archive
, ale nie zawierają (jeszcze?) Dostawcy nawigacji, który sprawiałby, że to, co chcesz, było bardzo proste. Powiedział, że można użyć Read-Archive
i Expand-Archive
. Coś w rodzaju tego nietestowanego bitu
Read-Archive -Path foo.zip -Format Zip | `
Where-Object { $_.Name -like "*.txt" } | `
Expand-Archive -PassThru | select-string "myRegex"
pozwoliłoby ci wyszukiwać bez wyodrębniania całego archiwum.
Powiązane problemy
- 1. Szybki algorytm wyszukiwania wzorca w pliku tekstowym
- 2. -f grep na plikach w formacie skompresowanym folderze
- 3. Zapisywanie mieszania MD5 pliku tekstowego w tym samym pliku tekstowym?
- 4. Dlaczego grep dopasować wszystkie linie do wzorca „\ '”
- 5. Jak napisać skrypt sed do grep informacji z pliku tekstowego
- 6. jak ustawić wartość dla pola tekstowego extjs?
- 7. Analiza pliku tekstowego dla bufora protokołu Google
- 8. Jak zrobić "grep" odczytać wzorce z pliku?
- 9. Jak mogę ustawić nazwę pliku w NSSavePanel?
- 10. Jak ustawić dolną krawędź dla każdego wiersza w obszarze tekstowym?
- 11. Jak ustawić linki w bloku tekstowym klikalnym w wp7
- 12. Jak sprawdzić poprawność dopasowywania wzorca w obszarze tekstowym?
- 13. Jak ustawić kursor na końcu tekstu w zamaskowanym polu tekstowym?
- 14. Jak ustawić tekst w widoku tekstowym widgetu
- 15. Wzór pasujący do wzorca Grep zamknięty w podwójnych cudzysłowach
- 16. Dlaczego grep pasuje do wszystkich wierszy niezależnie od wzorca
- 17. Jak wybrać losową linię z pliku tekstowego
- 18. Jak mogę ustawić ikonę dla mojego własnego rozszerzenia pliku
- 19. C# wyszukiwanie dużego pliku tekstowego
- 20. Jak ustawić wartość pola tekstowego w Dart?
- 21. Wróć jednej linii w pliku tekstowym C++
- 22. Jak przenieść elementy w górę/w dół w pliku tekstowym?
- 23. Jak ustawić delegata dla pola tekstowego w konstruktorze interfejsu na "właściciel pliku"?
- 24. Jak grep dla całego słowa
- 25. Jak szybciej iterować w tym pliku tekstowym?
- 26. Jak mogę zaimplementować uniksowy grep w Perlu?
- 27. Odczytaj zarówno znak jak i linię z pliku tekstowego
- 28. Grep dokładne dopasowanie słowa (-w) nie działa ze ścieżkami plików w pliku tekstowym
- 29. Jak dynamicznie ustawić zmienne PHP, wzorca projektowego
- 30. Jak używać pliku grep in .zip
I dla jasności, wyszukuje w "zwykłych" plikach zip, a także plikach 'gzip'. – Nate
@Nate Nie do końca prawdziwe. Użyje gzip, który może mieć problemy z "zwykłymi" plikami zip, powodując rozpakowanie tylko pierwszego spakowanego pliku w archiwum. – dstibbe