Jak podzielić duży plik w systemie Windows?

75

Czy istnieje narzędzie do dzielenia dużego pliku tekstowego (9 Gb) na mniejsze pliki, aby móc go otworzyć i przejrzeć?

Coś użytecznego z wiersza poleceń dostarczanego z systemem Windows (XP)?

Lub jaki jest najlepszy sposób na podział? Czy mogę użyć 7z do utworzenia osobnych woluminów, a następnie rozpakować osobno jeden z nich? Czy będzie czytelny, czy też będzie potrzebował wszystkich innych części, aby ponownie rozpakować do dużego pliku?

Aktualizacja

Złożyłem szybki 48-wierszowy skrypt w języku Python, który dzieli duży plik na pliki 0,5 GB, które można łatwo otworzyć nawet w vimie. Musiałem tylko przejrzeć dane w kierunku ostatniej części dziennika (tak, to plik dziennika). Każdy rekord jest podzielony na wiele linii, więc grep nie zrobiłby tego.

stefanB
źródło
Widzę, że zredagowałeś grep. Czy masz zainstalowane cygwin lub unxutils? Możesz użyć grep -nz headi tailzobaczyć fragmenty pliku. Przykład grep -n "something" file.txtzwraca 95625: something. Chcesz zobaczyć tę linię i 9 linii poniżej na w sumie 10 linii: head -n 95635 file.txt | tail -n 10.
John T
Zauważyłem, że rozwiązałeś problem. Jeśli nadal jesteś w pobliżu, czy możesz opublikować rozwiązanie, aby inni mogli skorzystać?
Journeyman Geek
Zostało to szczegółowo omówione na Stack Overflow [1] [1]: stackoverflow.com/questions/159521/…
Rishi Dua

Odpowiedzi:

43

Istnieje darmowy rozdzielacz plików systemu Windows o nazwie HJSplit

Dostępne tutaj . Witryna twierdzi, że może dzielić pliki dowolnego typu i rozmiaru, ale 9 GB to duży plik.

pavium
źródło
1
Według wydawcy obsługuje dzielenie plików „ponad 100 gigabajtów”
yosh m
8
Byłem w stanie użyć tego programu do podzielenia dużego pliku na mniejsze części, ale tylko według rozmiaru (kB lub MB). Nie szanuje linii, więc nie jest bardzo przydatny do dzielenia plików dziennika. Jest również bardzo wolny.
nullability
HJSplit działa tak brzydko ... Nie działa z plikami 5 Gb +. Największa część pliku w ogóle traci. Peun Chuncka przeciwdziała nieuzbrojonym po 999, a coś innego zawiedzie, jeśli użyjesz większych pease
user2602807
W systemach 64-bitowych działa tylko z graficznym interfejsem użytkownika w systemie Windows. Jeśli chcesz zautomatyzować rzeczy, nie jest to rozwiązanie
576i
24

Pakiet GNU Core Utils (dostępny tutaj dla systemu Windows) zawiera narzędzie Split. To działa dobrze dla mnie :-)

Dokumentacja --help jest następująca:

Usage: split [OPTION] [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'.  With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   use suffixes of length N (default 2)
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes  use numeric suffixes instead of alphabetic
  -l, --lines=NUMBER      put NUMBER lines per output file
      --verbose           print a diagnostic to standard error just
                            before each output file is opened
      --help     display this help and exit
      --version  output version information and exit

SIZE may have a multiplier suffix: b for 512, k for 1K, m for 1 Meg.

Na przykład, aby podzielić input.txt na fragmenty 100 Mb, dzieląc tylko na końcach linii,

split input.txt -C 100m

da ci pliki wyjściowe o nazwach xaa, xab, xac itp.

Lecieć do
źródło
2
na przykład git msys download zawiera również narzędzie.
eis
Cmder jest do tego niesamowity
Umber Ferrule
15

Kolejnym jest GSplit - według ich strony może dzielić bardzo duże pliki (większe niż 4 Gb <- ponieważ przekroczyły limit 4 Gb, myślę, że mogą również zrobić 9 Gb).

Ale kolejna rzecz - mówisz, że chcesz podzielić ją na mniejsze części, abyś mógł ją otworzyć i spojrzeć na nią. To brzmi jak bardzo duży plik dziennika.

W każdym razie, do otwierania dużych plików tekstowych, mogę polecić EmEditor - twierdzą, że może otwierać bardzo duże pliki (do ok. 250 Gb), a ja używałem go w przeszłości dla plików do 2 Gb. Ale w każdym razie myślę, że może to być lepsze rozwiązanie niż podział.

Wieża
źródło
Właśnie wypróbowałem GSplit. Działa, chociaż przez mylący interfejs, ale nie oferuje żadnego sposobu podziału tylko przy podziale wiersza - do dzielenia plików danych ASCII, dlatego nie jest zbyt użyteczny, ponieważ podział będzie w połowie linii.
Flyto,
1
@Flyto To rzeczywiście jest możliwe, aby podzielić przez linię, jeśli wybierzesz „split po numerze zdarzenie” pod Pieces > Type and Sizemenu. Następnie wybierasz liczbę linii i ogranicznik linii w systemie szesnastkowym. Domyślnie ma format Windows CR + LF ( 0x0D0x0A).
nullability
@ Nullability dzięki - nie pomyślałbym o tym. Ale znalazłem znacznie prostsze rozwiązanie dzięki narzędziu GNU „split” - patrz moja nowa odpowiedź :-)
Flyto,
9

Sprawdź Dużą przeglądarkę plików tekstowych , jest świetna do takich rzeczy. Większość archiwizatorów i rozdzielaczy rozdzieli plik na części, których nie można użyć do samodzielnego i prawidłowego odczytania danych, należy je wszystkie wyodrębnić, aby odzyskać plik.

alternatywny tekst

Przeglądarka dużych plików tekstowych jest darmowa i przenośna.

John T.
źródło
3
Wydaje się, że link jest zepsuty. Działa to teraz: softpedia.com/get/Office-tools/Other-Office-Tools/…
huseyint
Oryginalny (lub edytowany?) Link działa teraz; Użyłbym tego linku przez softpedię każdego dnia! Ponadto, właśnie wypróbowałem LTFViewer i jest niesamowity, otworzył plik 818 MB, który nawet Notepad ++ narzekał na otwarcie. Nie bardzo w sposobie edytowania funkcji, ale gdy obejrzałem dzienniki w LTFViewer, echo. > myfile.txtrozwiązałem problem z plikiem dziennika 818 MB: D
Doktor J
LTFViewer jest naprawdę świetny (używam go do), ale jest limit. Próbowałem z nim otworzyć plik SQL o wielkości 3 GB, ale zawiesza się. Mayby nie miałem dość cierpliwości lub czegoś takiego ...
Mathlight,
LTFViewer działał dla mnie bardzo dobrze. Użyłem go na (względnie) mniejszym pliku, tylko 750 MB, ale otworzył go w niecałe 5 sekund.
Mike_OBrien
Możesz pobrać go z archiwum internetowego: web.archive.org/web/20151019115332/http://swiftgear.com
quip
8

Można użyć 7-Zip do tworzenia segmentów pliku tekstowego o określonym rozmiarze (np. 100 MB segmentów z 1,5 GB pliku dziennika).

Kluczowe opcje to - Użyj „Zapisz” zamiast „Kompresuj” - Użyj „Podziel na woluminy”

Powinieneś widzieć tekst w plikach .001 (.nnn).

wprowadź opis zdjęcia tutaj

Mehul
źródło
Załączony obraz jest idealny!
Erik,
5

Możesz użyć samego 7zip do podzielenia plików. (Możesz zapisać w formacie .zip lub .7z.) Po utworzeniu archiwum dostępna jest opcja o nazwie „Podziel wolumin, bajty”. Po prostu wybierz, jak duże chcesz kawałki.

I tak, możesz je rozpakować indywidualnie, jeśli chcesz.

Podziel pliki w 7zip

Felix
źródło
1

Istnieje narzędzie online, które dzieli pliki tekstowe, jeśli ktoś chce szybko podzielić pliki. http://www.textfilesplitter.com .

Działa świetnie dla mnie. I dzieli pliki zgodnie z liniami, których szukałem. Mówi także, że to wszystko po stronie klienta HTML5, więc jest bezpieczny w użyciu. Nie jestem pewien, jak duży może być, ale myślę, że zależy to od taranowania twojej maszyny.

Joe One
źródło
4
Czy naprawdę sugerujesz przesłanie pliku 9 GB, aby podzielić go w przeglądarce? Naprawdę??
spaghettidba
@spaghettidba: Mówi, że działa po stronie klienta za pomocą HTML5. W takim przypadku nie trzeba go przesyłać. Przyznaję, że miałem taką samą reakcję jak ty, kiedy pierwszy raz przeczytałem odpowiedź.
mwolfe02
0

Pomysł obejrzenia części pliku przed podjęciem decyzji, co z nim zrobić, jest dla mnie najlepszą opcją.

Aplikacja Large Text Viewer może być zainstalowana w systemie Windows za pośrednictwem Microsoft Store i oferuje opcję cięcia pliku na kawałki. Może się zdarzyć, że używa tego samego edytora, o którym wcześniej wspomniano (za kulisami), ale opcja zainstalowania go ze znanego źródła jest lepsza IMHO niż oferowane alternatywne linki. Działa mi to świetnie.

Jedynym problemem, jeśli dzieli się według rozmiaru, jest to, że niekoniecznie powoduje to uszkodzenie pliku w dobrym miejscu, więc może być konieczne jego edytowanie, aby przechwycić dokładnie taką treść, jakiej potrzebujesz.

Lew
źródło
1
Proszę edytować swoje odpowiedzi zawierać nazwę aplikacji, dzięki czemu może on być indeksowane i znaleźć wyszukiwania.
Scott,