У меня проблема при замене функции ниже на макрос.Замена с игнорированием нескольких символов с использованием SED
оригинальная линия:
function("<message>);
требуется линия:
`macro("message")
т.е. функция должна быть изменена на макро в нескольких файлах (другое сообщение каждый раз) и точкой с запятой удалена. Я попробовал команду ниже.
grep -rl 'function' ./ | xargs sed -i 's/function/`macro/g'
Это решило половину моей проблемы. я заменил переднюю часть перед сообщением. Я застрял, заменяя точку с запятой.
Примечание: другие точки с запятой не должны быть нарушены.
вы можете показать некоторые примеры примеров о том, как может быть 'message' текст? может ли он иметь пробелы? Обратите также внимание, что у вас есть ведущая, а также ваша функция «функция» не содержит закрывающей двойной кавычки. Должно быть так? – fedorqui
Для вашего точного вывода вы можете использовать 'sed 's/function (" <\([^>] * \)>. */\ 'Macro (" \ 1 ") /'' – 123