4

Надеюсь, я правильно сформулировал вопрос. У меня есть скрипт, который часто использует sed. Он отлично работает на моем Ubuntu с GNU 'Sed'. Но когда я пытаюсь запустить его на BusyBox, происходит сбой. Есть ли способ получить GNU sed на busybox? Я не профессионал в Linux.

2 ответа2

5

Сам Busybox может иметь ограниченную реализацию sed . Вы можете скопировать двоичный файл sed в какое-то место и вызвать его, указав полный путь.

Вы можете исправить некоторые проблемы несовместимости с заменой побегов , что BusyBox BUILTIN sed не поддерживает, например , замену побега \s с [[:space:]] позволит решить проблему космического соответствия.

2

Вы, кажется, неправильно понимаете, как работает busybox . Инструмент - это один исполняемый файл, который действует по-разному в зависимости от имени (или подкоманды), с которой он вызывается. Если вы вызываете символическую ссылку sed указывающую на двоичный файл busybox (или busybox sed), будет выполнена функциональность "sed".

Чтобы поместить GNU sed в среду busybox, вы должны удалить символическую ссылку sed на busybox и предоставить двоичный файл GNU sed и библиотеки, от которых он зависит. Вы можете определить библиотеки с помощью команды ldd :

$ ldd /bin/sed
    linux-gate.so.1 =>  (0xb7f78000)
    libselinux.so.1 => /lib/libselinux.so.1 (0xb7f56000)
    libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7e0f000)
    libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7e0a000)
    /lib/ld-linux.so.2 (0xb7f79000)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .