Как использовать переменные в команде sed

Я не думаю, что это типично, которые Живут, CD включает инструменты разработчика такой как make и autoconf. Теперь я понимаю, что хинду предназначен, чтобы быть созданным из источника, но данным Вашу ситуацию я думаю, что Вы - опции, одно из следующего:

  1. Скомпилируйте драйверы в другой хинду системе, которая действительно имеет make и затем вручную скопируйте ядро .ko файл (файлы) к затронутой системе.
  2. Получите двоичные пакеты make, gcc, и т.д. от portage в другой хинду системе и устанавливают их как пакеты в Живую систему CD.
  3. Попробуйте SabayonLinux вместо хинду.
  4. Выберите другой дистрибутив LiveCD, который действительно работает с Вашими аппаратными средствами и следует хинду руководству с помощью того дистрибутива вместо хинду LiveCD.

Просмотр практического руководства: Устанавливающий хинду Используя Пакеты на liveDVD там является несколькими упоминаниями о "sneakernet" методе установки:

выборка

Вторым выбором является установка stage3, поддерживаемая Sneakernet. Это отличается только, в котором вещи выбираются из Интернета с помощью удаленной системы или другой операционной системы (или оба) и загружаются в растущую установку вручную. Перевозка все еще создает все. Использование sneakernet описано в другом месте.

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

Детали для установки Вашей сети вручную здесь в разделе 3 из хинду руководства: Конфигурирование Вашей Сети.

4
05.01.2015, 02:29
1 ответ

Делайте так:

sed -i "/$variable/c \\${variable}1" file.txt

Изменения:

  1. Если у вас есть \ перед $, это заставляет оболочку вставить в строку литерал $. Вместо этого вставьте дополнительный \ для выхода из первой строки, чтобы на букву \ был напечатан буквальный символ.

  2. Если ваша переменная имеет буквы или цифры сразу после нее, впишите имя в {...}, это отличает вашу переменную от несуществующей переменной1 (если переменная не существует, оболочка расширит ее до нуля, вместо того, чтобы искать более короткое имя, которое делает это).

  3. Будьте согласны с вашими кавычками, вы начали с ", поэтому не заканчивайте с '! Переменные все равно расширяются только в двойных кавычках.

Обратите внимание, что для отладки подобных вещей вы можете использовать echo, посмотрев на вывод команды ниже, вы увидите, что пошло не так:

echo sed -i "/$variable/c \$variable1" file.txt

Сравните с;

echo sed -i "/$variable/c \\${variable}1" file.txt
4
27.01.2020, 20:55

Теги

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