Bir Dosyanın Yazdırılabilir Karakterlerini Dizelerle Göster

Bir dosyayı yalnızca okunamayan ikili içerik barındırdığını bulmak için bir düzenleyicide açmayı denediniz mi?

Linux "dizeleri" komutu, herhangi bir dosyadaki insan tarafından okunabilen karakterleri görüntülemeyi mümkün kılar.

"Dizeler" komutunu kullanmanın temel amacı, baktığınız dosyanın türünü bulmaktır, ancak metni çıkarmak için de kullanabilirsiniz. Örneğin, dosyaları garip bir ikili biçimde kaydeden özel mülk bir programdan bir dosyanız varsa, dosyaya koyduğunuz metni ayıklamak için "dizeleri" kullanabilirsiniz.

Strings Komutunun Örnek Kullanımı

Dizeler komutunun gücünü göstermenin harika bir yolu, LibreOffice Writer kullanarak bir belge oluşturmaktır.

LibreOffice Writer'ı açın ve bir metin girin ve ardından standart ODT formatında kaydedin.

Şimdi bir terminal penceresi açın ( CTRL, ALT ve T aynı anda) ve ardından dosyayı aşağıdaki gibi görüntülemek için cat komutunu kullanın:

kedi senin

(Yourfilename.odt dosyasını oluşturduğunuz dosyanın adıyla değiştirin)

Göreceğiniz şey, okunaksız bir metin duvarıdır.

Dosyayı kaydırmak için boşluk çubuğuna basın. Dosya boyunca ara sıra girdiğiniz bazı metinleri göreceksiniz.

Strings komutu, yalnızca insan tarafından okunabilen kısımları görüntülemek için kullanılabilir.

En basit haliyle aşağıdaki komutu çalıştırabilirsiniz:

dizeleriniz

Daha önce olduğu gibi, bir metin duvarı görünecek, ancak yalnızca bir insan olarak okuyabileceğiniz metin. Şanslıysanız, metninizi görebileceksiniz.

Görebileceğiniz şey bu, ancak, ilk satırda:

mimetypeapplication / vnd.oasis.

Dosya türünün 2 nedenden dolayı bir LibreOffice Writer ODT dosyası olduğunu biliyoruz:

  1. Dosyayı biz oluşturduk
  2. Uzantı .ODT

Dosyayı sizin oluşturmadığınızı veya dosyayı kurtarılan bir diskte bulduğunuzu ve dosyanın bir uzantısı olmadığını hayal edin.

Windows kurtarma genellikle 0001, 0002, 0003, vb. Gibi adlara sahip dosyaları kurtarır. Dosyaların kurtarılmış olması harikadır, ancak bu dosyaların ne türlerini bulmaya çalışmak bir kabustu.

Dizeleri kullanarak dosya türü üzerinde çalışma şansınız olur. Bir dosyanın bir opendocument.text dosyası olduğunu bilmek, onu ODT uzantısıyla kaydedip LibreOffice yazıcıda açabileceğiniz anlamına gelir.

Farkında olmamanız durumunda, bir ODT dosyası temelde sıkıştırılmış bir dosyadır. Dosyaadı.odt dosyanızı dosyaadı.zip olarak yeniden adlandırırsanız, bir arşivleme aracında açabilir ve hatta dosyayı açabilirsiniz.

Alternatif Davranışlar

Varsayılan olarak, dizeler komutu bir dosyadaki tüm dizeleri döndürür, ancak davranışı, bir dosyadaki başlatılmış, yüklenmiş veri bölümlerinden dizeler döndürmesi için değiştirebilirsiniz.

Bu tam olarak ne anlama geliyor? Kimse bilmiyor gibi görünüyor.

Dosya türünü denemek ve bulmak veya bir dosyada belirli bir metni aramak için dizeleri kullandığınızı varsaymak mantıklıdır.

Varsayılan davranışı kullanarak dizeler komutunu çalıştırdığınızda, umduğunuz çıktıyı alamazsanız, bir fark yaratıp yaratmadığını görmek için aşağıdaki komutlardan birini çalıştırmayı deneyin:

dizi

or

dizeler --data dosyanızın adı

Kılavuz sayfası, yukarıdaki komutun dizelerden dönen çöp miktarını azaltmaya yardımcı olabileceğini belirtir.

"Dizeler" komutu, eksi d anahtarı varsayılan davranış olacak şekilde ters yönde çalışacak şekilde ayarlanabilir. Sisteminizde bu durum söz konusuysa, aşağıdaki komutu kullanarak tüm verileri geri getirebilirsiniz:

dizi

Çıktı Biçimlendirme

Dosyanın adını her metin satırının yanında görüntülemek için çıktıdaki metni alabilirsiniz.

Bunu yapmak için aşağıdaki komutlardan birini çalıştırın:

dizi

or

dizeler - print-dosya-adınız

Çıktı şimdi şöyle görünecek:

dosya adınız: bir metin parçası

or

dosya adınız: başka bir metin parçası

Çıktının bir parçası olarak, o metnin bir dosyada göründüğü yerin ofsetini de görüntüleyebilirsiniz. Bunu yapmak için aşağıdaki komutu çalıştırın:

dizi

Çıktı şunun gibi görünecek:

Göreli konum aslında sekizlik uzaklıktır, ancak dizelerin sisteminiz için nasıl derlendiğine bağlı olarak kolayca onaltılık veya ondalık uzaklık da olabilir.

İstediğiniz ofseti elde etmenin daha doğru bir yolu aşağıdaki komutları kullanmaktır:

dizeler -td dosya adınız
dizeler - dosya adınıza
dizeler - dosya adınız

Eksi t, ofseti döndürmek anlamına gelir ve onu izleyen karakter, ofset türünü belirler. (yani d = ondalık, o = sekizlik, h = onaltılık).

Varsayılan olarak, dizeler komutu her yeni dizeyi yeni bir satıra yazdırır, ancak istediğiniz sınırlayıcıyı ayarlayabilirsiniz. Örneğin, sınırlayıcı olarak bir dikey çizgi sembolü ("|") kullanmak için aşağıdaki komutu çalıştırın:

dizeler -s "| &

Dize Sınırını Ayarlayın

Dizeler komutu varsayılan olarak bir satırda 4 yazdırılabilir karakterden oluşan bir dizeyi 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 sınırı ayarlayarak, mümkün olan en iyi sonucu elde etmek için çıktıyı özelleştirebilirsiniz. Çok uzun bir dizge arayarak, yararlı bir metni göz ardı etme riskiyle karşı karşıya kalırsınız, ancak onu çok kısa yaparak çok daha fazla önemsiz geri dönüş elde edebilirsiniz.

Dizi sınırını ayarlamak için aşağıdaki komutu çalıştırın:

dizeleri

Yukarıdaki örnekte, sınırı 8 olarak değiştirdim. 8'i istediğiniz sayıyla değiştirebilirsiniz.

Aynı şeyi yapmak için aşağıdaki komutu da kullanabilirsiniz:

dizeler - bayt & #

Boşluğu Dahil Et

Varsayılan olarak, dizeler komutu, yazdırılabilir bir karakter olarak bir sekme veya boşluk gibi beyaz boşlukları içerir. Bu nedenle, "kedi matın üzerine oturdu" şeklinde bir dizgeniz varsa, dizeler komutu tüm metni döndürecektir.

Yeni satır karakterleri ve satır başları, varsayılan olarak yazdırılabilir karakterler olarak kabul edilmez.

Dizelerin yeni satır karakterlerini ve satır başlarını yazdırılabilir bir karakter olarak tanımasını sağlamak için dizeleri aşağıdaki şekilde çalıştırın:

dizi

Kodlamayı Değiştirin

Dizelerle kullanılmak üzere 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 küçük kuş

Varsayılan, 7 bitlik bir bayttır.

Kodlamayı değiştirmek için aşağıdaki komutu çalıştırın:

dizeler -es dosya adınız
dizeler --encoding = s dosyanızın adı

Yukarıdaki komutta, 7 bitlik bayt anlamına gelen varsayılan "s" yi belirledim. Basitçe "s" yi seçtiğiniz kodlama harfiyle değiştirin.

İkili Dosya Açıklama 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. Kullanacak başka bir kitaplığınız varsa, aşağıdaki dizeler komutunu çalıştırarak bunu yapabilirsiniz:

st

Dosyadan Okuma Seçenekleri

Her seferinde aynı seçenekleri kullanacaksanız, komutu her çalıştırdığınızda tüm anahtarları belirtmek zorunda kalmazsınız çünkü bu zaman alır.

Yapabilecekleriniz, nano kullanarak bir metin dosyası oluşturmak ve bu dosya içindeki seçenekleri belirlemektir.

Bunu bir terminal içinde denemek için aşağıdaki komutu çalıştırın:

Dosyaya aşağıdaki metni girin:

-f -o -n

CTRL ve O tuşlarına basarak dosyayı kaydedin ve CTRL ve X tuşlarına basarak çıkın.

Dize komutlarını bu seçeneklerle çalıştırmak için aşağıdaki komutu çalıştırın:

dizeler @strings

Seçenekler, stringsopts dosyasından okunacaktır ve her dizeden önce dosya adını, ofseti ve "|" ayırıcı olarak.

Yardım Alma

Dizeler hakkında daha fazla bilgi edinmek isterseniz, yardım almak için aşağıdaki komutu çalıştırabilirsiniz.

Alternatif olarak, kılavuz sayfasını da okuyabilirsiniz:

Hangi Dizeleri Çalıştırdığınızı Öğrenin

Çalıştırdığınız dizelerin sürümünü bulmak için aşağıdaki komutlardan birini çalıştırın:

dizeler -v
dizeler -V
dizeler --version