Вы также можете сделать это, чтобы избавиться от имен файлов:
cat my.log* | grep "100200300"
Подойдет ли простой sed
?
$ var=_b123
$ sed -Ee "/version/s/'(.*)'/'\1$var'/" file
war {
baseName = 'myApp'
version = '1.0.2_b123'
}
(/version/
проверяет, содержит ли строка эту строку, если да, то мы с
заменяем строку внутри одинарных кавычек той же строкой ((...)
захватывает, \1
восстанавливает) плюс текст в переменной. Кавычки здесь не важны, так как все, что нам нужно, безопасно в двойных кавычках.)
Если вам нравится vim, это работает:
vim +/version +"norm 2f'i_b123" +x file
Это открывает файл и выполняет три команды:
перейти к первой строке, содержащей «версию»
войти в нормальный режим, перейти к второй '
, перейти в режим вставки, вставить _b123
записать и выйти