← man/data_processing
hexdump — man hexdump — 80×24
ugur@toprak:~/man/data_processing$man hexdump
Bölüm 1 Veri İşleme

hexdump

ASCII, ondalık (decimal), onaltılık (hexadecimal), sekizlik (octal) döküm

Kullanım

     hexdump [-bcCdovx] [-e biçim_dizesi] [-f biçim_dosyası] [-n uzunluk] [-s ofset] dosya ...

Açıklama

hexdump aracı, belirtilen dosyaları veya herhangi bir dosya belirtilmemişse standart girdiyi, kullanıcının belirlediği bir biçimde görüntüleyen bir filtredir.

Seçenekler aşağıdaki gibidir:

  • -b: Tek baytlık sekizlik (octal) görünüm. Satır başına girdi ofsetini onaltılık biçimde, ardından boşlukla ayrılmış, üç sütunlu, sıfır dolgulu, sekizlik biçimde on altı baytlık girdi verisini görüntüler.

  • -c: Tek baytlık karakter görünümü. Satır başına girdi ofsetini onaltılık biçimde, ardından boşlukla ayrılmış, üç sütunlu, boşluk dolgulu, on altı girdi verisi karakterini görüntüler.

  • -C: Kurallı (canonical) hex+ASCII görünümü. Girdi ofsetini onaltılık biçimde, ardından boşlukla ayrılmış, iki sütunlu, onaltılık on altı baytı ve ardından ``|'' karakterleri arasına alınmış %_p biçimindeki aynı on altı baytı görüntüler.

  • -d: İki baytlık ondalık (decimal) görünüm. Satır başına girdi ofsetini onaltılık biçimde, ardından boşlukla ayrılmış, beş sütunlu, sıfır dolgulu, işaretsiz ondalık biçimde iki baytlık sekiz adet girdi verisi birimini görüntüler.

-e biçim_dizesi Verilerin görüntülenmesi için kullanılacak bir biçim dizesi belirtir.

-f biçim_dosyası Yeni satırlarla ayrılmış bir veya daha fazla biçim dizesi içeren bir dosya belirtir. Boş satırlar ve ilk boşluk olmayan karakteri diyez işareti (#) olan satırlar yoksayılır.

-n uzunluk Girdinin yalnızca belirtilen uzunluktaki (uzunluk) baytını yorumlar.

  • -o: İki baytlık sekizlik (octal) görünüm. Satır başına girdi ofsetini onaltılık biçimde, ardından boşlukla ayrılmış, altı sütunlu, sıfır dolgulu, sekizlik biçimde iki baytlık sekiz adet girdi verisi miktarını görüntüler.

-s ofset Girdinin başlangıcından itibaren belirtilen ofset baytı kadar atlar. Varsayılan olarak ofset ondalık bir sayı olarak yorumlanır. Başında 0x veya 0X varsa, ofset onaltılık bir sayı olarak yorumlanır; aksi takdirde başında 0 varsa sekizlik bir sayı olarak yorumlanır. Ofset değerinin sonuna b, k, m veya g karakterlerinin eklenmesi, sırasıyla 512, 1024, 1048576 veya 1073741824 katı olarak yorumlanmasına neden olur.

  • -v: hexdump'ın tüm girdi verilerini görüntülemesini sağlar. -v seçeneği olmadan, hemen önceki çıktı satırları grubuyla (girdi ofsetleri hariç) aynı olacak olan herhangi bir sayıda çıktı satırı grubu, tek bir yıldız işaretinden oluşan tek bir satırla değiştirilir.

  • -x: İki baytlık onaltılık görünüm. Satır başına girdi ofsetini onaltılık biçimde, ardından boşlukla ayrılmış, dört sütunlu, sıfır dolgulu, onaltılık biçimde iki baytlık sekiz adet girdi verisi miktarını görüntüler.

hexdump, her girdi dosyası için girdiyi sırayla standart çıktıya kopyalar ve verileri belirtilen sıra ile -e ve -f seçenekleriyle tanımlanan biçim dizelerine göre dönüştürür.

Biçimler Bir biçim dizesi, boşluklarla ayrılmış herhangi bir sayıda biçim birimi içerir. Bir biçim birimi en fazla üç öğe içerir: bir yineleme sayısı (iteration count), bir bayt sayısı (byte count) ve bir biçim (format).

Yineleme sayısı, varsayılan olarak bir olan ve belirtilmesi isteğe bağlı pozitif bir tamsayıdır. Her biçim, yineleme sayısı kadar uygulanır.

Bayt sayısı isteğe bağlı pozitif bir tamsayıdır. Belirtilirse, biçimin her yinelemesi tarafından yorumlanacak bayt sayısını tanımlar.

Bir yineleme sayısı ve/veya bayt sayısı belirtilmişse, bunları birbirinden ayırt etmek için yineleme sayısından sonra ve/veya bayt sayısından önce tek bir eğik çizgi yerleştirilmelidir. Eğik çizgiden önceki veya sonraki tüm boşluklar yoksayılır.

Biçim zorunludur ve çift tırnak (" ") işaretleriyle çevrelenmelidir. Aşağıdaki istisnalar dışında, fprintf tarzı bir biçim dizesi olarak yorumlanır (bkz. fprintf(3)):

• Genişlik veya hassasiyet (precision) alanı olarak yıldız işareti (*) kullanılamaz.

• Her ``s'' dönüşüm karakteri için bir bayt sayısı veya alan hassasiyeti gereklidir (hassasiyet belirtilmediğinde tüm dizeyi yazdıran fprintf(3) varsayılanından farklı olarak).

h'', l'', n'', p'' ve ``q'' dönüşüm karakterleri desteklenmez.

• C standardında açıklanan tek karakterlik kaçış dizileri (escape sequences) desteklenir:

NUL \0 <uyarı karakteri> \a \b \f <yeni satır> \n <satır başı> \r \t \v

hexdump aracı ayrıca aşağıdaki ek dönüşüm dizelerini de destekler:

_a[dox] Görüntülenecek bir sonraki baytın, girdi dosyaları boyunca birikimli girdi ofsetini görüntüler. Sona eklenen d, o ve x karakterleri, görüntüleme tabanını sırasıyla ondalık, sekizlik veya onaltılık olarak belirtir.

_A[dox] Tüm girdi verileri işlendiğinde yalnızca bir kez gerçekleştirilmesi dışında _a dönüşüm dizesi ile aynıdır.

_c Varsayılan karakter kümesindeki karakterleri çıktı olarak verir. Yazdırılamayan karakterler, standart kaçış gösterimi ile temsil edilebilenler (yukarıya bakın) hariç olmak üzere, sıfır dolgulu sekizlik biçimde üç karakterle görüntülenirken; kaçış gösterimiyle temsil edilenler iki karakterlik dizeler olarak görüntülenir.

_p Varsayılan karakter kümesindeki karakterleri çıktı olarak verir. Yazdırılamayan karakterler tek bir “.” olarak görüntülenir.

_u Kontrol karakterlerinin aşağıdaki küçük harfli isimler kullanılarak görüntülenmesi istisnasıyla, US ASCII karakterlerini çıktı olarak verir. Onaltılık 0xff'den büyük karakterler onaltılık dizeler olarak görüntülenir.

000 NUL 001 SOH 002 STX 003 ETX 004 EOT 005 ENQ 006 ACK 007 BEL 008 BS 009 HT 00A LF 00B VT 00C FF 00D CR 00E SO 00F SI 010 DLE 011 DC1 012 DC2 013 DC3 014 DC4 015 NAK 016 SYN 017 ETB 018 CAN 019 EM 01A SUB 01B ESC 01C FS 01D GS 01E RS 01F US 07F DEL

Dönüşüm karakterleri için varsayılan ve desteklenen bayt sayıları aşağıdaki gibidir:

%_c, %_p, %_u, %c Yalnızca tek baytlık sayımlar.

%d, %i, %o, %u, %X, %x Dört baytlık varsayılan; bir, iki ve dört baytlık sayımlar desteklenir.

%E, %e, %f, %G, %g Sekiz baytlık varsayılan; dört ve on iki baytlık sayımlar desteklenir.

Her bir biçim dizesi tarafından yorumlanan veri miktarı, her bir biçim biriminin gerektirdiği verilerin toplamıdır; bu da yineleme sayısı ile bayt sayısının çarpımı veya bayt sayısı belirtilmemişse yineleme sayısı ile biçimin gerektirdiği bayt sayısının çarpımıdır.

Girdi ``bloklar'' halinde işlenir; burada bir blok, herhangi bir biçim dizesi tarafından belirtilen en büyük veri miktarı olarak tanımlanır. Bir girdi bloğu değerinden daha az veriyi yorumlayan ve son biçim birimi hem belirli sayıda baytı yorumlayıp hem de belirli bir yineleme sayısına sahip olmayan biçim dizelerinin yineleme sayısı, tüm girdi bloğu işlenene kadar veya blokta biçim dizesini karşılayacak kadar veri kalmayana kadar artırılır.

Kullanıcı belirtimi sonucunda veya hexdump'ın yukarıda açıklandığı gibi yineleme sayısını değiştirmesi nedeniyle yineleme sayısı birden büyük olursa, son yineleme sırasında satır sonu boşluk karakterleri çıktı olarak verilmez.

Dönüşüm karakterlerinden veya dizelerinden biri hariç hepsi _a veya _A olmadığı sürece, hem bir bayt sayısı hem de birden fazla dönüşüm karakteri veya dizesi belirtmek bir hatadır.

-n seçeneğinin belirtilmesi veya dosya sonuna (end-of-file) ulaşılması sonucunda, girdi verileri bir biçim dizesini yalnızca kısmen karşılıyorsa, girdi bloğu mevcut tüm verileri görüntülemeye yetecek kadar sıfırla doldurulur (yani, verilerin sonuyla çakışan tüm biçim birimleri belirli sayıda sıfır baytı görüntüler).

Bu tür biçim dizelerinin sonraki çıktıları, eşdeğer sayıda boşlukla değiştirilir. Eşdeğer sayıda boşluk, orijinal dönüşüm karakteri veya dönüşüm dizesiyle aynı alan genişliğine ve hassasiyetine sahip olan, ancak tüm “+”, “ ”, “#” dönüşüm bayrağı karakterleri kaldırılmış ve bir NULL dizesine başvuran bir s dönüşüm karakteri tarafından çıktı olarak verilen boşluk sayısı olarak tanımlanır.

Hiçbir biçim dizesi belirtilmemişse, varsayılan görünüm -x seçeneğinin belirtilmesine eşdeğerdir.

Çıkış Durumu

hexdump aracı başarı durumunda 0, bir hata oluştuğunda ise >0 değeriyle çıkar.

Örnekler

     Girdiyi kurallı (canonical - hex+ASCII) biçimde dök:

	   $ echo "FreeBSD: The power to serve" | hexdump -C
	   00000000  46 72 65 65 42 53 44 3a  20 54 68 65 20 70 6f 77  |FreeBSD: The pow|
	   00000010  65 72 20 74 6f 20 73 65  72 76 65 0a	       |er to serve.|
	   0000001c

     Yukarıdakiyle aynı, ancak standart girdinin (stdin) ilk 4 baytını atlar ve girdinin yalnızca 3 baytını yorumlar:

	   $ echo "FreeBSD: The power to serve" | hexdump -C -s 4 -n 3
	   00000004  42 53 44					       |BSD|
	   00000007

     Bir inceleme (perusal) biçimi belirten aşağıdaki içeriğe sahip format.txt adında bir biçim dosyası varsayıldığında:

	   "%06.6_ao "	12/1 "%3_u "
	   "\t\t" "%_p "
	   "\n"

     format.txt içindeki biçimi kullanarak girdiyi kurallı biçimde dök:

	   $ echo "FreeBSD" | hexdump -f format.txt -C
	   000000   F	r   e	e   B	S   D  lf			   F r e e B S D .
	   00000000  46 72 65 65 42 53 44 0a			       |FreeBSD.|
	   00000008

     -x seçeneğini simüle eden aşağıdaki içeriğe sahip format.txt adında bir biçim dosyası varsayıldığında:

	   "%07.7_Ax\n"
	   "%07.7_ax  " 8/2 "%04x " "\n"

     format.txt içindeki biçimi kullanarak girdiyi dök:

	   $ echo "FreeBSD: The power to serve" | hexdump -f format.txt -C
	   0000000  7246 6565 5342 3a44 5420 6568 7020 776f
	   00000000  46 72 65 65 42 53 44 3a  20 54 68 65 20 70 6f 77  |FreeBSD: The pow|
	   0000010  7265 7420 206f 6573 7672 0a65
	   00000010  65 72 20 74 6f 20 73 65  72 76 65 0a	       |er to serve.|
	   0000001c

Ayrıca Bakınız

od(1)

macOS 26.4 June 29, 2020 macOS 26.4