Я хотел бы использовать sed для замены, но не путем поиска того, что заменить.sed частичная замена или переменная
Позвольте мне объяснить. Первоначально у меня есть значение переменной по умолчанию.
VARIABLE="DEFAULT"
я могу сделать, чтобы заменить СЭД DEFAULT с тем, что я хочу, но тогда я должен был бы поставить DEFAULT назад, когда я все сделал. Это связано с тем, что данные, хранящиеся в VARIABLE, уникальны для пользователя. Я бы хотел использовать sed для поиска чего-то другого, кроме того, что нужно заменить. Например, найдите VARIABLE = "and" и замените что-то между ним. Таким образом, он постоянно обновляется, и нет необходимости перезагружать VARIABLE.
Это, как я это делаю в данный момент:
Я называю сценарий и передать аргумент
./script 123456789
Внутри скрипта, это то, что происходит:
sed -i "s%DEFAULT%$1%" file_to_modify
Это заменяет
VARIABLE="DEFAULT"
с
VARIABLE="123456789"
Было бы хорошо, если бы я не должен искать «по умолчанию», потому что тогда я бы не сбросить ПЕРЕМЕННОЙ в конце сценария.
Можете ли вы добавить небольшое объяснение, пожалуйста? – Atomiklan
Я попробовал sed -r '/ VARIABLE = "([^"] *) "/ VARIABLE =" $ 1 "/' file_to_modify, и скрипт зависает – Atomiklan
Вам нужны скобки вокруг скобок? Я думаю, вы также можете использовать' 's/VARIABLE = "[^"] * "/ VARIABLE =" 123456789 "/'' –