Как да се покаже принтерски символи на файла с командата Strings

Опитали ли сте някога да отворите файл в редактор само, за да разберете, че той съдържа нечетимо двоично съдържание?

Командата "низове" на Linux дава възможност да се видят човешко четимите символи във всеки файл.

Основната цел на командата "низове" е да разберете какъв тип файл търсите, но можете да го използвате и за извличане на текст. Например, ако имате файл от патентована програма, която съхранява файлове в странен бинарен формат, можете да използвате "низове", за да извлечете текста, който поставяте във файла.

Примерно използване на командата Струни

Чудесен начин да демонстрирате силата на командата за струните е да създадете документ, използвайки LibreOffice Writer.

Просто отворете LibreOffice Writer и въведете някакъв текст и го запазете в стандартния ODT формат .

Сега отворете терминален прозорец (натиснете CTRL, ALT и T едновременно) и след това използвайте командата cat за показване на файла както следва:

котката си Повече ▼

(Заменете yourfilename.odt с името на създадения от вас файл)

Това, което ще видите, е цяла стена от нечетлив текст.

Натиснете интервала, за да превъртите файла. Спорадично във файла ще видите част от текста, който сте въвели.

Командата низове може да се използва само за показване на части, които са човешки четими.

В най-простата форма можете да изпълните следната команда:

низове yourfilename.odt | Повече ▼

Както и преди, ще се появи стена от текст, но само текст, който можете да прочетете като човек. Ако имате късмет, тогава ще можете да видите текста си.

Това, което ще разберете, че е от ключово значение обаче, е на първия ред:

mimetypeapplication / vnd.oasis.opendocument.text

Знаем, че файловият тип е файл ODT на LibreOffice Writer по две причини:

  1. Създадохме файла
  2. Разширението е .ODT

Представете си, че не сте създали файла или сте намерили файла на възстановения диск и файлът няма разширение.

Възстановяването на Windows често възстановява файлове с имена като 0001, 0002, 0003 и т.н. Фактът, че файловете са били възстановени, е страхотно, но се опитва да разбере какви са тия файлове, които са кошмар.

Чрез използването на струни имате шанс да разберете типа на файла. Знаейки, че даден файл е файл opendocument.text означава, че можете да го запазите с разширението ODT и да го отворите в LibreOffice писател.

В случай, че не сте знаели, ODT файл е основно компресиран файл. Ако преименувате yourfilename.odt на yourfilename.zip, можете да го отворите в архивиращ инструмент и дори да разкоснете файла.

Алтернативни поведения

По подразбиране командата низове връща всички струни във файл, но можете да превключите поведението, така че да връщат низове от инициализираните, заредени секции с данни във файл.

Какво точно означава това? Никой не изглежда да знае.

Има смисъл да се предположи, че използвате низове, за да опитате или да откриете типа на файла, или да търсите конкретен текст във файл.

Ако при стартиране на командата низове, използвайки по подразбиране поведение, не получавате изхода, който се надявахте, след което опитайте да изпълните една от следните команди, за да видите дали това прави разлика:

низове -d yourfilename

низове - дайте своето име

Ръчната страница посочва, че горната команда може да помогне да се намали количеството боклуци, върнати от струните.

Командата "низове" може да бъде настроена да работи обратно, така че превключвателят минус d да е по подразбиране. Ако това е така в системата, можете да върнете всички данни, като използвате следната команда:

низове - име на вашето име

Форматиране на изхода

Можете да получите текста в изхода, за да покажете името на файла до всеки ред текст.

За тази цел изпълнете една от следните команди:

низове -f yourfilename

низове - отпечатване на името на файла

Изходът сега ще изглежда така:

yourfilename: част от текста

yourfilename: друг текст

Като част от изхода можете също да показвате отместването на мястото, където се появява този текст във файл. За тази цел изпълнете следната команда:

низове - име на вашето име

Резултатът ще изглежда така:

16573 твоя

17024 текст

Офсетът е всъщност осмият компенсиран, въпреки че в зависимост от начина, по който са компилирани низовете за вашата система, може лесно да бъде и шестнадесетичен или десетичен отместване.

По-точен начин за получаване на отместването, което искате, е да използвате следните команди:

низове - име на вашето име

низове - във вашето име

низовете - името на вашето име

По-малкото t означава връщане на отместването, а следният знак определя отместването. (т.е. d = десетично, o = осмо, h = шестнадесети).

По подразбиране командата низове отпечатва всеки нов низ на нов ред, но можете да зададете разделителя по ваш избор. Например, за да използвате символа за тръби ("|") като разделител изпълнете следната команда:

низовете "s" | "" yourfilename

Регулиране на границата на низовете

Командата низове по подразбиране търси поредица от 4 подлежащи на отпечатване знаци подред. Можете да коригирате по подразбиране, така че да връща само низ с 8 печатаеми знака или 12 печатаеми знака.

Чрез коригиране на този лимит можете да приспособите изхода, за да постигнете най-добрия възможен резултат. Чрез търсене на низ, който е твърде дълъг, рискувате да пропуснете полезен текст, но като го направите твърде кратък, може да се окажете с много повече боклуци.

За да коригирате ограничението за низи, изпълнете следната команда:

низове -n 8 yourfilename

В горния пример променях границата до 8.

Можете да замените 8 с номера по ваш избор.

Можете също така да използвате следната команда, за да направите едно и също нещо:

низове - bytes = 8 yourfilename

Включете бялото пространство

По подразбиране командата за низове включва празно пространство, като например раздел или място, като отпечатващ знак. Ето защо, ако имате низ, който чете като "котката седна на мат", командата за струните ще върне целия текст.

Новите символи на редовете и връщанията на каретата не се считат за подлежащи на печат знаци по подразбиране.

За да се получат низове, за да се разпознават нови символи на линиите и каретата се връща като печатаем знак, изпълнете низовете по следния начин:

низове -w yourfilename

Промяна на кодирането

Има 5 опции за кодиране за използване с низове:

По подразбиране е 7-битов байт.

За да промените кодирането, изпълнете следната команда:

низове - име на файла ви

низове - encoding = s yourfilename

В горната команда, аз зададох по подразбиране "s", което означава 7 бита байт. Просто заменете "s" с кодиращата буква по Ваш избор.

Промяна на името на двоичния файл

Можете да промените поведението на низовете, така че да използват различна библиотечна библиотека за дескриптори на файлове, различна от предоставената за вашата система.

Този ключ е един за експертите. Ако имате друга библиотека, която да използвате, можете да го направите, като изпълните следната струна команда:

низове -T bfdname

Опции за четене от файл

Ако ще използвате едни и същи опции всеки път, тогава не искате да се налага да посочвате всички превключватели всеки път, когато изпълнявате командата, защото отнема време.

Това, което можете да направите, е да създадете текстов файл с помощта на нано и да зададете опциите в този файл.

За да изпробвате това в рамките на терминала, изпълнете следната команда:

nano stringsopts

Във файла въведете следния текст:

-f -o -n 3 -s "|"

Запазете файла, като натиснете CTRL и O и излезте, като натиснете CTRL и X.

За да стартирате командите на низовете с тези опции, изпълнете следната команда:

низовете @ stringsoptes yourfilename

Опциите ще бъдат прочетени от файловете stringsopts и трябва да видите името на файла преди всеки низ, отместването и "|" като сепаратор.

Получавам помощ

Ако искате да прочетете повече за струните, можете да изпълните следната команда, за да получите помощ.

низове - помощ

Като алтернатива можете да прочетете и ръководството:

мъжки струни

Разберете коя версия на струнни тече

За да намерите версията на низове, които изпълнявате, изпълнете една от следните команди:

низове -в

низове -V

низове - версия