Hiç bir okunaklı ikili içerik içerdiğini öğrenmek için bir editörde bir dosya açmayı denediniz mi?
Linux "dizeleri" komutu, insan tarafından okunabilir karakterleri herhangi bir dosyada görüntülemeyi mümkün kılar.
"Dizeleri" komutunu kullanmanın asıl amacı, aradığınız dosya türünü bulmaktır, ancak metin ayıklamak için de kullanabilirsiniz. Örneğin, garip bir ikili formatta dosyaları kaydeden özel bir programdan bir dosya varsa, dosyaya koyduğunuz metni çıkarmak için "dizeleri" kullanabilirsiniz.
Dizeler Komutunun Örnek Kullanımı
Dizeler komutunun gücünü göstermek için harika bir yol LibreOffice Writer kullanarak bir belge oluşturmaktır.
LibreOffice Writer'ı açın ve bir metin girin ve standart ODT formatında kaydedin.
Şimdi bir terminal penceresi açın (CTRL, ALT ve T'ye aynı anda basın) ve ardından dosyayı aşağıdaki gibi görüntülemek için cat komutunu kullanın:
cat yourfilename.odt | Daha
(Kendi dosya adınızı, oluşturduğunuz dosyanın adıyla değiştirin.)
Göreceğiniz şey, okunaksız bir metnin bütün duvarıdır.
Dosyada ilerlemek için boşluk çubuğuna basın. Dosya boyunca sporadik olarak girdiğiniz metnin bir kısmını göreceksiniz.
Dizeler komutu, sadece okunabilir kısımları görüntülemek için kullanılabilir.
En basit haliyle, aşağıdaki komutu çalıştırabilirsiniz:
dizeleri yourfilename.odt | Daha
Daha önce olduğu gibi, bir metin duvarı görünecek, ancak sadece insan olarak okuyabileceğiniz bir metin. Eğer şanslıysanız, metninizi görebileceksiniz.
Bununla birlikte, bunun ne olduğunu görebileceksiniz, ilk sıradadır:
mimetypeapplication / vnd.oasis.opendocument.text
Dosya türünün 2 nedenden dolayı bir LibreOffice Writer ODT dosyası olduğunu biliyoruz:
- Dosyayı oluşturduk
- Uzantı .ODT
Dosyayı oluşturmadığınızı veya dosyayı kurtarılmış bir diskte bulduğunuzu ve dosyanın bir uzantısının olmadığını hayal edin.
Windows kurtarma genellikle 0001, 0002, 0003 gibi isimlerle dosyaları kurtarabilir. Dosyaların kurtarıldığı gerçektir, ancak bu dosyaların türlerinin ne olduğu hakkında bir kabus olduğu sonucuna varmaya çalışıyorum.
Dizeleri kullanarak dosya türünü çalışma konusunda bir savaş şansınız olur. Bir dosyanın bir opendocument.text dosyası olduğunu bilmek, bunu ODT uzantısıyla kaydedip LibreOffice yazıcısında açabileceğiniz anlamına gelir.
Bir ODT dosyasının temelde sıkıştırılmış bir dosya olduğunu bilmiyorsanız. Eğer dosya isminizi kendi isminiz ile değiştirirseniz, bir arşivleme aracında açabilir ve hatta dosyayı açabilirsiniz.
Alternatif Davranışlar
Varsayılan olarak, dizeler komutu bir dosya içindeki tüm dizeleri döndürür, ancak davranışı, dosyadaki başlatılmış, yüklenmiş veri bölümlerinden dizeleri döndürecek şekilde değiştirebilirsiniz.
Bu tam olarak ne anlama geliyor? Kimse bilmiyor gibi gözüküyor.
Dosya türünü bulmak ya da bir dosyada belirli bir metni aramak için dizeleri kullandığınızı varsaymak mantıklıdır.
Varsayılan davranışı kullanarak dizge komutunu çalıştırırken, beklediğiniz çıktısını almazsanız, aşağıdaki farklardan birini çalıştırmayı deneyin: Bir fark yaratıp yaratmadığını görmek için:
dizeleri -d dosya adınız
dizeleri --data dosya adınız
Kılavuz sayfası, yukarıdaki komutun dizelerden döndürülen çöp miktarını azaltmaya yardımcı olabileceğini belirtir.
"Dizeler" komutu, eksi d anahtarının varsayılan davranış olması için tersine çalışmak üzere ayarlanabilir. Sisteminizde bu durumda, aşağıdaki komutu kullanarak tüm verileri döndürebilirsiniz:
dizeler-dosya adınız
Biçimlendirme Çıkışı
Metnin her satırının yanında dosyanın adını görüntülemek için çıktı içindeki metni alabilirsiniz.
Bunu yapmak için aşağıdaki komutlardan birini çalıştırın:
dizeleri -f dosya adınız
dizgiler - print-file-name yourfilename
Çıkış şimdi böyle bir şeye benzeyecek:
dosya adınız: bir metin parçası
dosya adınız: başka bir metin parçası
Çıktının bir parçası olarak, bir metnin bir dosyada nerede göründüğü ofsetini de görüntüleyebilirsiniz. Bunu yapmak için şu komutu çalıştırın:
dizeleri-dosya adınız
Çıkış böyle bir şeye benzeyecek:
16573
17024 metin
Ofset, sisteminiz için dizelerin nasıl derlendiğine bağlı olarak, sekizlik veya ondalık sapma olarak da kolayca okunabilir olsa da, aslında sekizlik ofsettir.
İstediğiniz ofseti elde etmenin daha doğru bir yolu, aşağıdaki komutları kullanmaktır:
dizeleri -td dosya adınız
dizgiler-dosya isminize
dizeler-dosya isminiz
Eksi, ofseti döndürmek anlamına gelir ve aşağıdaki karakter ofset tipini belirler. (yani d = ondalık, o = sekizlik, h = altıgen).
Varsayılan olarak, dizeler komutu her yeni dizeyi yeni bir satıra yazdırır, ancak seçtiğiniz sınırlayıcıyı ayarlayabilirsiniz. Örneğin, sınırlayıcı olarak bir boru sembolü ("|") kullanmak için aşağıdaki komutu çalıştırın:
dizgiler -s "|" DosyaAdınız
Dize Limitini Ayarla
Dizeleri varsayılan olarak komut satırı, bir satırda 4 yazdırılabilir karakter dizisi arar. Varsayılanı, yalnızca 8 yazdırılabilir karakter veya 12 yazdırılabilir karakter içeren bir dize döndürecek şekilde ayarlayabilirsiniz.
Bu limiti ayarlayarak, mümkün olan en iyi sonucu elde etmek için çıkışı uyarlayabilirsiniz. Çok uzun olan bir ipi arayarak, yararlı bir metni atlamayı riske atıyorsunuz ama bunu çok kısa yaparak, geri döndüğünüzden çok daha fazla önemsiz olabilirsiniz.
Dize sınırını ayarlamak için aşağıdaki komutu çalıştırın:
dizeleri -n 8 dosya adınız
Yukarıdaki örnekte limiti 8 olarak değiştirdim.
Seçiminizi 8 ile değiştirebilirsiniz.
Aynı şeyi yapmak için aşağıdaki komutu da kullanabilirsiniz:
dizeleri --bytes = 8 dosya adınız
Whitespace'i dahil et
Varsayılan olarak, dizeler komutu, bir sekme veya yazdırılabilir karakter olarak boşluk gibi beyaz boşluk içerir. Bu nedenle "kedi matın üzerine oturmuş" olarak okuyan bir dizgeye sahipseniz, dizge komutu tüm metni döndürür.
Yeni satır karakterleri ve satırbaşları, varsayılan olarak yazdırılabilir karakterler olarak kabul edilmez.
Dizeleri yeni satır karakterlerini tanımak ve satırbaşları aşağıdaki şekilde yazdırılabilir karakter dizisi olarak döndürmek için:
dizeler -w dosya adınız
Kodlamayı Değiştir
Dizelerle kullanım için 5 kodlama seçeneği vardır:
- s = 7 bit bayt (ASCII, ISO 8859 için kullanılır)
- S = 8 bit bayt
- b = 16 bit bigendian
- l = 16 bit littleendian
Varsayılan 7 bit bayttır.
Kodlamayı değiştirmek için aşağıdaki komutu çalıştırın:
dizeleri -es dosya adınız
dizeler --encoding = s dosya adınız
Yukarıdaki komutta, 7 bit bayt anlamına gelen varsayılan "s" değerini belirledim. "S" yi seçtiğiniz kodlama harfiyle değiştirin.
İkili Dosya Açıklaması Adını Değiştirin
Dizelerin davranışını, sisteminiz için sağlanandan farklı bir ikili dosya tanımlayıcı kitaplığı kullanacak şekilde değiştirebilirsiniz.
Bu anahtar uzmanlar içindir. Kullanmak için başka bir kitaplığınız varsa, aşağıdaki dizeleri çalıştırarak bunu yapabilirsiniz:
dizeleri -T bfdname
Bir Dosyadan Okuma Seçenekleri
Her seferinde aynı seçenekleri kullanacaksanız, komutun her çalıştırılışında tüm anahtarları belirtmek zorunda kalmazsınız çünkü zaman alır.
Yapabilecekleriniz nano kullanarak bir metin dosyası oluşturmak ve bu dosya içindeki seçenekleri belirtmektir.
Bunu bir terminal içinde denemek için aşağıdaki komutu çalıştırın:
nano dizeleri
Dosyada aşağıdaki metni girin:
-f -o -n 3 -s "|"
CTRL ve O tuşlarına basarak dosyayı kaydedin ve CTRL ve X tuşlarına basarak çıkın.
Dizeler komutlarını bu seçeneklerle çalıştırmak için aşağıdaki komutu çalıştırın:
dizeleri @stringsopts dosya adınız
Seçenekler, dosya dizelerinden okunacak ve her bir dizeden, ofsetten ve "|" önce dosya adını görmelisiniz. Bir ayırıcı olarak.
Yardım almak
Dizeler hakkında daha fazla bilgi edinmek isterseniz, yardım almak için aşağıdaki komutu çalıştırabilirsiniz.
dizeleri - yardım
Alternatif olarak manuel sayfayı da okuyabilirsiniz:
adam dizeleri
Çalıştırdığınız Dizelerin Hangi Sürümü Bulduğunu Öğrenin
Çalıştığınız dizelerin sürümünü bulmak için aşağıdaki komutlardan birini çalıştırın:
dizeleri -v
dizeleri -V
dizeleri --version