%20%D0%BE%D1%82%20%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0%20%D0%B2%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%83%D1%8E%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83.png)
У меня возникли некоторые проблемы с sed, и я вижу переменную, содержащую числовую инструкцию для вставки текста в определенную строку.
Вот рабочий код без переменной:
sed -i '1i\NewLineHere\' ~/file/location/here.txt
Мне нужно изменить число 1 на $var, но с буквой 'i', оставшейся рядом с ней (без пробела), при этом не видимой как часть переменной. Я использую " " вместо ' ', чтобы sed мог правильно видеть переменные, я пробовал бесчисленное множество разных попыток, и ни одна из них не сработала. Пример того, как выглядит проблема без какой-либо попытки отсоединить 'i' от переменной, оставив ее рядом с ней:
sed -i "$vari\NewLineHere\" ~/file/location/here.txt
Заранее спасибо за любые предложения или ответы.
решение1
Вот где {}
полезно цитирование имен переменных. В вашем случае,${var}
Например:
$ var=100
$ echo $vari
$ echo ${var}i
100i
Действует {...}
как «область действия» для имени переменной.
(Примечание: будьте осторожны с \
персонажем при переключении между '
и "
).