Во-первых, объяснение того, почему ваш не работает.Вам нужно убрать все ваши круглые скобки, квадратные скобки и +
, поэтому должно работать следующее:
sed -i 's/\(font\-family:\)\{1\}\(["A-Za-z, ]\+\)\{1\}\(;\)\{1\}/font-family: Verdana;/'
К счастью, вы можете добавить переключатель -r
, чтобы избежать необходимости всего этогоэкранирование, но вы также можете немного упростить текущее выражение.Вам не нужно помещать каждый раздел в группу захвата, и добавление {1}
в каждую группу является избыточным (это по умолчанию).Таким образом, вы можете уменьшить его до:
sed -ri 's/font-family:["A-Za-z, ]+;/font-family: Verdana;/g'
Обратите внимание на добавленную опцию g
для глобальной замены, поскольку вы хотите это для каждого вхождения.
Все вместе:
find ./ -type f -exec sed -ri 's/font-family:["A-Za-z, ]+;/font-family: Verdana;/g' {} \;