RANDOMIZE_BASE
— это функция, доступная на большинстве архитектур, которая рандомизирует виртуальный и физический базовые адреса ядра .
RANDOMIZE_MEMORY
является специфической функцией x86 -64 -, которая дополнительнорандомизирует смещения page_offset_base
, vmalloc_base
, vmemmap_base
, , т.е. местоположения физическое отображение в памяти ядра, пространство vmalloc
и карта виртуальной памяти. Как вы можете видеть из связанной карты памяти, за всеми ними следуют дыры, которые позволяют перемещать их без необходимости иметь дело с перекрытием с тем, что находится до или после них в памяти.
Чтобы отобразить содержимое файла с grep
, вы можете выполнить поиск по пустому регулярному выражению grep "" file.txt
или регулярному выражению «начало строки» grep ^ file.txt
.
Насколько я понимаю, в качестве параметра указывается каталог. Если это так:
grep ^ $(find $1 -name '*.txt')
или
find $1 -name '*.txt' -exec grep ^ {} \;
Проблема с обоими решениями заключается в том, что они отображают содержимое всех текстовых файлов, а не «файл », как того требует вопрос. Первое решение также печатает имена текстовых файлов, если найдено более одного текстового файла. Наконец, мое первое решение не работает, если найдено слишком много текстовых файлов; xargs
помогает в этом случае.
По крайней мере, с GNU grep (, который, вероятно, является вашей реализацией, поскольку вы отметили вопрос Linux ), вы можете использовать опцию --include
, чтобы ограничить искомые файлы по глобусу. Сочетание этого с пустым шаблоном для имитацииcat
:
grep -hr --include='*.txt' '' directory
Параметр -h
отключает добавление по умолчанию префикса имени файла к совпавшим результатам.