Mam kilka plików o rozmiarze> 1 GB każdy. Muszę usunąć kilka ostatnich bajtów z plików. Jak mogę to zrobić? Wolę edytować plik w miejscu, aby zaoszczędzić miejsce na dysku.
Jestem na HP-UX.
files
editors
hp-ux
large-files
Hemant
źródło
źródło
vim
ma limit 4G (może być źle), ale nie sądzę, że to robi na miejscu (może być źle).Odpowiedzi:
Spróbuj użyć hexedit Nie próbowałem tego na HP-UX, ale powinno działać. Umożliwia przejście do lokalizacji w pliku i obcięcie. Jestem prawie pewien, że nie odczytuje całego pliku, ale po prostu szuka odpowiedniej lokalizacji do wyświetlenia.
Użycie jest dość proste, gdy go uruchomisz, klawisze strzałek pozwalają się poruszać. F1 pomaga. Ctrl-G przenosi się do lokalizacji w pliku (wskazówka: aby przejść do końca, użyj rozmiaru pliku z dolnego wiersza wyświetlacza). Ustaw kursor na pierwszym bajcie, który chcesz obciąć, a następnie naciśnij klawisz Escape T po potwierdzeniu, że obcięcie zostanie wykonane. Ctrl-x kończy pracę.
źródło
Wytnij 2 kilobajty z końca pliku:
źródło
Możesz użyć dd na przykład:
źródło
Użyj narzędzia, które daje dostęp do
truncate
wywołania systemowego. Możesz to zrobić tylko za pomocą narzędzi POSIX. Ostrzeżenie wpisane w przeglądarce; zachowaj szczególną ostrożność, ponieważdd
jest to bardziej bezlitosne błędy niż zwykłe polecenie unix. 123456 to liczba bajtów do zachowania.Wersja Perla jest znacznie bardziej czytelna:
źródło
Możesz użyć
split
lubed
,awk
lub dowolnego języka programowania.źródło