Как заменить строку определенным шаблоном в vi?

Исполняемые файлы часто зависят от внешних частей программного обеспечения, называемых разделяемыми библиотеками (фактически, библиотеки также являются исполняемыми файлами). Чтобы запустить исполняемый файл, динамический компоновщик должен найти все зависимые библиотеки и загрузить их. Если это не удается, он выводит сообщение об ошибке, подобное тому, которое вы указали, и отказывается от загрузки исполняемого файла.

Можно просмотреть все библиотеки, от которых зависит исполняемый файл, выполнив

ldd Telegram

Тогда в вашем случае сообщение говорит, что компоновщик не может найти библиотеку libX11-xcb.so.1 , предположительно потому, что она не установлен. Это конкретное имя используется библиотекой XCB .

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

2
27.04.2016, 04:48
2 ответа

Не уверен, что он идеально подходит для вашего варианта использования, но похоже, что вы можете просто использовать:

:g/s\d\+_decoded_block\[/ s/\[/_/

... если нет потенциально других [ символов в совпадающих строках , предшествующих той, которую вы хотите изменить.

Чем проще, тем лучше, если это соответствует вашим требованиям.

1
27.01.2020, 22:04

Вы, кажется, ожидаете десятичного числа для "#" в вопросе. Вы можете сделать это, используя обратную ссылку:

%s/s\(\d\+\)_decoded_block\[/s\1_decoded_block_/g

где \ (\ d \ + \) соответствует одной или нескольким десятичным цифрам и заменяется маркером \ 1 .

Вы можете улучшить обратную ссылку, переместив в нее больше текста:

%s/s\(\d\+_decoded_block\)\[/s\1_/g

потому что \ 1 будет заменено тем, что было найдено в группе.

2
27.01.2020, 22:04

Теги

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