Если вы можете работать с awk
, то это может помочь -
awk -v FS="%" -v OFS="%" '
/Html.Resource\("Title"\)/{sub(/.*/,"= Resource."FILENAME".Title ",$2); print;next}1
' Input_File
Вышеуказанная однострочная строка устанавливает разделитель поля и Разделитель поля вывода на %
. Ищет строки, содержащие шаблон /Html.Resource\("Title"\)/
. Если он находит его, он запускает действие, которое заменяет столбец $ 2 на FILENAME (который является встроенной переменной, содержащей имя файла), и печатает его и переходит к следующей строке. 1
- для строк, которые не содержат шаблон и печатаются как есть.
Тест:
[jaypal:~/Temp] cat default.aspx
Whats up <%= Html.Resource("Title") %>
[jaypal:~/Temp] awk -v FS="%" -v OFS="%" '
> /Html.Resource\("Title"\)/{sub(/.*/,"= Resource."FILENAME".Title ",$2); print;next}1
> ' default.aspx
Whats up <%= Resource.default.aspx.Title %>
[jaypal:~/Temp] cat contact.aspx
Hallo <%= Html.Resource("Title") %>
[jaypal:~/Temp] awk -v FS="%" -v OFS="%" '
> /Html.Resource\("Title"\)/{sub(/.*/,"= Resource."FILENAME".Title ",$2); print;next}1
> ' contact.aspx
Hallo <%= Resource.contact.aspx.Title %>