Я довольно новичок в bash, поэтому я надеюсь, что это простой вопрос, я пытаюсь использовать 2 переменные в команде sed, но это не сработает. Я пытаюсь вставить переменную Ь в строке (переменной) а:с использованием двух переменных с sed -i
a=5
b=123456
sed -i $a $b myfile.txt
Я пытался возиться с кавычками, но не может получить это право. Любая помощь очень ценится!
Первый сорт, что вы написали бы, если эти номера были написаны инлайн в сценарии. Затем переработайте этот скрипт, чтобы заменить два числа ссылками на переменные, не забывая использовать двойные кавычки, а не одинарные кавычки. (Подсказка: синтаксис, который вы в настоящее время пытаетесь использовать, совершенно неверен!) Также вам нужно определить, что вы подразумеваете под «вставить переменную b в строку a»; вы ставите b на строку самостоятельно до строки a, после строки a, вместо строки a, или вы добавляете b в строку (а затем местоположение в строке, которую вы положили). Для каждого варианта есть разные ответы. Также GNU vs 'classic'/POSIX? –
Вы хотите вставить 123456 в строку 5 или в любое время, когда в ваших данных будет 5? Небольшие выборочные данные и ожидаемый результат помогут сделать это намного легче. Удачи. – shellter
Спасибо за помощь! Я понял, что добавление i к моей переменной «a», а двойные кавычки фиксировали все это. а = 5i; б = 123456; sed -i "$ a $ b" myfile.txt; – qplay