Czy możesz polecić edytor szesnastkowy, który można uruchomić z powłoki? Muszę móc edytować nie tylko przeglądać zawartość.
Czy możesz polecić edytor szesnastkowy, który można uruchomić z powłoki? Muszę móc edytować nie tylko przeglądać zawartość.
Odpowiedzi:
emacs
ma tryb hexl do edycji szesnastkowej.
dd
region, który chcesz edytować w pliku i otwórz go w emacsie, a następnie z dd
powrotem.
xxd
To narzędzie jest najczęściej dostępne, jakie znalazłem dla tego typu zadań (domyślnie dostępne zarówno w najnowszym Ubuntu, jak i macOS). W razie potrzeby możesz usunąć część czytelną ascii po prawej stronie -p
i możesz przywrócić (zmienić dane ascii na dane binarne) za pomocą tej -r
funkcji. Oto kilka prostych przykładowych zastosowań:
Konwersja na hex w widoku ascii:
echo example | xxd
Konwertowanie na zrzut heksowy (brak widoku ascii po prawej):
echo example | xxd -p
Konwertowanie z zrzutu heksadecymalnego z powrotem na dane binarne:
echo 746573740a | xxd -p -r
Możesz stać się o wiele bardziej skomplikowany w skryptach powłoki. Użyłem tego i „dd” do skanowania w poszukiwaniu określonych sekwencji i modyfikowania ich w predefiniowany sposób, wszystko ze skryptu powłoki, używając tylko bash dd
, i xxd
. Tak naprawdę nie potrzebujesz do tego dd, ponieważ możesz „szukać” do określonej lokalizacji i zapisać w tej lokalizacji potrzebną sekwencję bajtów. Największą zaletą tego podejścia jest łatwość pisania skryptów.
Istnieje również DHEX
apt-cache show dhex
Edytor hex oparty na ncurses z trybem różnicowym
To więcej niż kolejny edytor szesnastkowy: zawiera tryb różnicowy, którego można użyć do łatwego i wygodnego porównania dwóch plików binarnych. Ponieważ jest oparty na ncurses i jest tematyczny, może działać na dowolnej liczbie systemów i scenariuszy. Dzięki wykorzystaniu dzienników wyszukiwania możliwe jest łatwe śledzenie zmian w różnych iteracjach plików.
Jeśli nie znasz Vima ani Emacsa, ten nie wydaje się mieć dużej krzywej uczenia się.
Możesz także używać vi / vim jako edytora szesnastkowego (może wywoływać xxd).
Wejdź w tryb szesnastkowy:
:%!xxd
Wyjdź z trybu hex:
:%!xxd -r
:%!xxd
dodawanie nowych znaków (tj. Nowej linii) do pliku.
xxd
kto to robi: raczej sam Vim.
:set binary
! W przeciwnym razie VIM może uszkodzić plik, dodając koniec linii (CR / LF / CRLF) na końcu pliku (w zależności od tego, jaki format ma ustawiony na ( set ff=[mac/unix/dos]
)). Jest bardzo prawdopodobne, że spowoduje to uszkodzenie plików wykonywalnych i plików binarnych danych. I tak jest. Dużo. Upewnij się, że VIM jest w trybie binarnym, aby temu zapobiec.
Wiem, że to stare pytanie, ale nie byłem zadowolony z wszystkich odpowiedzi tutaj. Szukałem edytora szesnastkowego, który pozwoliłby mi tworzyć własne pliki binarne (inaczej tryb wstawiania) i mógł obsługiwać bardzo duże pliki.
Natknąłem się na poprawki , które spełniają oba te wymagania, a także PO.
- Tweak obsługuje tryb wstawiania (nie jest to szczególnie przydatne, jeśli edytujesz plik wykonywalny lub obraz systemu plików, ale może być bardzo przydatne w innych formatach plików, takich jak PNG).
- Wycinanie, kopiowanie i wklejanie w edytowanym pliku jest niezwykle wydajne. Bez względu na to, jak duża część danych się porusza - nawet jeśli jest to fragment obrazu CD o wielkości 200 Mb - Tweak zawsze wykona operację skutecznie natychmiast.
- Tweak obsługuje leniwe ładowanie pliku wejściowego: zamiast od razu wsysać wszystko do pamięci, po prostu zapamiętuje, które części bufora edycji są kopiami, które części pliku wejściowego i odwołuje się do pliku na dysku, kiedy jest to konieczne. Ulepszenie zajmuje dużo czasu tylko wtedy, gdy naprawdę potrzebujesz go do odczytania całego pliku. Jedyne dwie operacje z tą właściwością to wyszukiwanie i zapisywanie zmodyfikowanej wersji pliku na dysku. Wszystko inne jest natychmiastowe.
tweak
, ale dla mnie było to niezręczne. Mogę spróbować ponownie, jeśli naprawdę potrzebuję edycji. Uruchom man tweak
z terminala, aby wyświetlić przegląd i listę poleceń.
Bless Hex Editor to edytor binarny (hex) i obecnie oferuje następujące funkcje:
Możesz to zrobić stąd: http://packages.debian.org/sid/all/bless/download .
Aby go zainstalować, zobacz Jak zainstalować plik .deb za pomocą wiersza polecenia?
Potrzeba więcej?
bless
polecenia po zainstalowaniu.
Ten jest bardzo prosty w użyciu:
sudo apt-get install hexcurse