LINUX.ORG.RU
ФорумAdmin

Расшифруйте команду пожалуйста! - Perl

 ,


0

1

Здравствуйте!

В perl АБСОЛЮТНЫЙ профан, но вот возникла настоятельная надобность:

Есть вот такая команда:

sudo perl -pi -e 's|(^\x00{1,20})[^\x00]{9}(\x00{1,20}\x54)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

В прнципе она должна найти и заменить последовательность в файле на нули, но есть некоторые вопросы:

1. Что делают option -p и -i?

2. Какая последовательность ищется?

3. Как видоизменить команду, что бы она ПРОСТО ВЫВЕЛА найденную строку?

Заранее благодарен за помощь!



Последнее исправление: Cave-Canem (всего исправлений: 2)

1. -i говорит использовать для ввода-вывода файл (который /System и т.д.) -p говорит, что команду после -e применять для каждой строчки и результат печатать (в данном случае, вместе с -i, это означает поместить изменённую строку обратно в файл взамен прочитанной)
2. Из 9 ненулей

redgremlin ★★★★★
()
Ответ на: комментарий от outtaspace

Я же написал что АБСОЛЮТНЫЙ ПРОФАН, можете просто оветить на вопросы?

.

Cave-Canem
() автор топика
Ответ на: комментарий от conalex

Я же написал что АБСОЛЮТНЫЙ ПРОФАН, можете просто оветить на вопросы?

.

Cave-Canem
() автор топика

-p - организовывает выполнение задоного выражения в цикле while(<>), тоесть построчный разбор входного файла

-i - Вкачестве ввода вывода использовать файл из командной строки

Заменяет 9 не нулевых байд на 9 нулевых байт в начале файла перед которыми идет от 1 до 20 нулей и за ними идет от 1 до 20 нулей и в конце 0x54

zaz ★★★★
()
Ответ на: комментарий от redgremlin

redgremlin

А не подскажите, как видоизменить команду что бы она ТОЛЬКО выводила найденную строку?

Cave-Canem
() автор топика
Ответ на: zaz от Cave-Canem

Нашёл строку:

sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /Volumes/RAM/IOAHCIBlockStorage
sudo perl -pi -e 's|(^\x00{1,20})[^\x00]{9}(\x00{1,20}\x54)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /Volumes/RAM/IOAHCIBlockStorage
cmp -b -l /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /Volumes/RAM/IOAHCIBlockStorage
 66516 101 A      0 ^@
 66517 120 P      0 ^@
 66518 120 P      0 ^@
 66519 114 L      0 ^@
 66520 105 E      0 ^@
 66521  40        0 ^@
 66522 123 S      0 ^@
 66523 123 S      0 ^@
 66524 104 D      0 ^@
Cave-Canem
() автор топика
Ответ на: zaz от Cave-Canem
perl -ne 'print if m|^\x00{1,20}[^\x00]{9}\x00{1,20}\x54|' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
evbogdanov
()
Ответ на: комментарий от evbogdanov

evbogdanov

perl -ne 'print if m|^\x00{1,20}[^\x00]{9}\x00{1,20}\x54|' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

APPLE SSDTime To ReadyMacBookAir5,1MacBookAir5,2APPLE SSD TSQueue DepthIOMaximumBlockCountReadIOMaximumBlockCountWriteIOAHCIBlockStorageDriver::
SetUltraDMAMode 
- exiting with failure: 0x%X
Cave-Canem
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.