Как определить путь к общей библиотеке по умолчанию?

Поскольку это последнее вхождение в файл, вы можете использовать этот sedскрипт:

sed -i 'H;1h;$!d;g;s_\(.*\)<br />_\1</font>_' yourfile.html

или упрощенный с помощью GNU sedи расширенного регулярного выражения:

sed -izE 's_(.*)<br />_\1</font>_' yourfile.html

Хитрость заключается в том, чтобы обработать весь файл в одном буфере. Версия POSIX делает это путем сбора в буфере удержания, версия GNU использует для этого опцию -z. Затем с помощью команды sзамените все (.*), включая последнее вхождение шаблона, на все перед шаблоном (, \1относится к части в())и замене.

Другая попытка, если вам действительно требуется замена только в третьей до последней строке (без замены, если нет совпадения, без замены в следующей -по -последней или последней строке):

sed '1N;N;$!{P;D];s_<br />_</font>_' yourfile.html
1
21.07.2020, 17:45
2 ответа

Обычно эту информацию можно получить, прочитав /etc/ld.so.conf. Этот файл может включать в себя другие файлы; в моей системе он включает все файлы в /etc/ld.so.conf.d.

Обратите внимание, что поиск будет выполняться в нескольких каталогах. Обратите также внимание, что это не влияет на путь динамического компоновщика ld.so, который встроен в двоичный файл и обычно является унифицированным для данной архитектуры и ABI.

1
18.03.2021, 23:18

Сначала следует выяснить цель, чтобы указать путь. Это может быть один из:

  1. Где искать уже установленные библиотеки.
  2. Куда устанавливать библиотеки, чтобы сделать их видимыми для компоновщиков или загрузчиков среды выполнения.
  3. Куда устанавливать библиотеки, чтобы соответствовать политике дистрибутива.

Для (3 )единственным реальным источником является описание политики дистрибутива, которое является удобочитаемым документом. Вы не можете определить это из кеша /etc/ld.so.conf, ldconfigи т. д., потому что вы не можете узнать, какое расположение является предпочтительным, а какое — устаревшим; некоторый намек на это можно получить, подсчитав библиотеки, но это определенно не работает для сценария оболочки.

Для (1 )и (2 )читать и интерпретировать /etc/ld.so.conf(, но это не тривиально, поскольку обычно включает ссылки на другие файлы или подстановочные знаки содержимого каталога ). Вы также можете анализировать вывод ldconfig -pи накапливать перечисленные каталоги. Но остерегайтесь возможных конфликтов с существующими библиотеками и необходимости переделывать кеш ldconfig после изменения набора библиотек.

0
18.03.2021, 23:18

Теги

Похожие вопросы