Изменить все строки подходящие под шаблон в файле с помощью команд Linux

Можете подсказать как это сделать с помощью команд Linux и Bash? Есть файл и в нем есть строки по типу: some_string = Argc("data") И дан шаблон замены Argc("some_string") на Argv"some_string", т.е. заменить все вхождения Argc на Argv и убрать скобочки и после выполнения скрипта должно стать some_string = Argv"data"


Ответы (1 шт):

Автор решения: aleksandr barakin

подозреваю, что тот, кто давал вам задание, предполагал, что вы воспользуетесь «старым добрым» m4. нет, не тем, который носят на ремне:

введите сюда описание изображения

а тем который макропроцессор.


создадим файл с правилом преобразования (имена таких правил принято сопровождать суффиксом .m4):

$ cat r.m4
define(Argc,Argv$1)dnl

ну а исходный файл пусть будет таким:

$ cat foo 
bar
some_string = Argc("data")

если теперь программе m4 передать эти файлы, так:

$ m4 r.m4 foo

или так:

$ cat r.m4 foo | m4

то получим вот такой результат:

bar
some_string = Argv"data"

тут главное, чтобы правило преобразования встретилось раньше той информации, которую надо преобразовывать.

→ Ссылка