Утилита «Strings», включая перевод строки (LF) и возврат носителя (CR)

327
MartinPosider234

Я хочу отфильтровать большой файл (необработанное изображение раздела) для строк (случайно удаленный текстовый файл). Обычная утилита "strings" (строки Linux GNU или строки sysinternals в Windows) не считает CR и LF частями строки, а разделителем строк. Мне нужно, чтобы они НЕ рассматривались как сепаратор. Есть ли инструмент, способный на это? Средство Windows было бы здорово, но если мне нужно, я могу использовать live-Linux.

благодарю вас

PS: undelete toools не может найти этот файл

РЕДАКТИРОВАТЬ: Поскольку многие из вас не поняли меня, позвольте мне попытаться объяснить снова:

Строка "test \ ntext" с \ n символом новой строки (windows или unix) обрабатывается утилитой строк как "test" и "text". Если я ищу строки с небольшим числом символов, то возникает много «ложных срабатываний» - просто небольшие строки из двоичного файла или что-то еще. Поскольку я хочу искать текстовые файлы (или фрагменты), число символов велико, и это хорошо, так как многие ложные срабатывания могут быть удалены из списка. НО: в текстовых файлах есть новые строки, и стандартная утилита строк (GNU или sysinternals) не «видит» их как одну строку.

Я думаю

-w --include-all-whitespace По умолчанию символы табуляции и пробела включены в отображаемые строки, но другие символы пробела, такие как переносы строки и возврат каретки, не отображаются. Параметр -w изменяет это так, что все пробельные символы считаются частью строки.

это решение, но я еще не проверял его.

0
ты пишешь "linux oder windows sysinternals" <- что это значит? barlop 8 лет назад 0
Я исправил это в строках Linux или Windows Sysinternals, потому что я думаю, это то, что вы имели в виду. Хотя то, что вы тогда написали о CR и LF .. Вы уверены? Я не знаю о строках, Linux использует LF в качестве ограничителя строки (без CR) и не использует разделители. Windows использует CRLF в качестве разделителя строк (без терминаторов). Но я понял общую идею. Вы хотите строки, которые coutns CR и LF как части строки. barlop 8 лет назад 0
Я думаю, что так не будет. это спорно ли текстовый файл один нескончаемая строка или ряд небольших строк, разделенных разделитель. В любом случае вывод strings.exe для текстового файла, в котором файл обрабатывался как один большой двоичный объект, был бы неотличим от вывода, если бы он рассматривался как последовательность строк. поскольку байты кодируются для вывода, символ разделителя становится разрывом строки в выводе. Теперь, если вы спрашиваете о литеральных \ r или \ n строках, то это другая проблема. Frank Thomas 8 лет назад 0

1 ответ на вопрос

0
stacksharki

You have to make sure you're using latest GNU strings. Grab it here:" https://www.gnu.org/software/binutils/. Compile, and use strings's -w option...

Довольно сложно отыскать что-то с таким родовым названием, как «strings», и на страницах справки, на которых я смотрел объявление, не была указана опция -w. Как долго эта опция доступна в строках GNU ?! Я думаю, что это решение. Спасибо. MartinPosider234 8 лет назад 0
он пометил эти окна. Это программа для Windows, если так, где она загружается? Я заметил, что binutils не является пакетом gnuwin32 barlop 8 лет назад 0