Как изменить текст в одинарных кавычках?

Вы также можете сделать это, чтобы избавиться от имен файлов:

cat my.log* | grep "100200300"
2
21.04.2017, 02:20
2 ответа

Подойдет ли простой sed?

$ var=_b123
$ sed -Ee "/version/s/'(.*)'/'\1$var'/" file 
war {
    baseName = 'myApp'
    version = '1.0.2_b123'
}

(/version/ проверяет, содержит ли строка эту строку, если да, то мы сзаменяем строку внутри одинарных кавычек той же строкой ((...) захватывает, \1 восстанавливает) плюс текст в переменной. Кавычки здесь не важны, так как все, что нам нужно, безопасно в двойных кавычках.)

.
6
27.01.2020, 21:53

Если вам нравится vim, это работает:

vim +/version +"norm 2f'i_b123" +x file

Это открывает файл и выполняет три команды:

  • перейти к первой строке, содержащей «версию»

  • войти в нормальный режим, перейти к второй ', перейти в режим вставки, вставить _b123

  • записать и выйти

0
27.01.2020, 21:53

Теги

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