Если вы хотите соответствовать литералу ".", Вам нужно экранировать его или использовать в классе символов. В качестве альтернативы сокращению круглых скобок (что необходимо сделать с базовыми RE), вы можете использовать опцию -E, чтобы указать sed использовать расширенные RE. Наконец, RE, используемые sed, используют \N
для ссылки на подшаблоны, где N
- это цифра.
sed -E "s/href=([\"'])([^\"']*)[.,]\1/href=\1\2\1/i"
У этого есть своя собственная проблема, которая предотвратит совпадения атрибутов href, которые используют оба типа кавычек.
man sed
и man re_format
предоставят больше информации о RE, используемых в sed.