Я пытаюсь использовать регулярное выражение PCRE и использовать его в SED, но у меня возникают некоторые проблемы. Обратите внимание, что этот вопрос является репрезентативным для более крупной проблемы (как преобразовать регулярное выражение PCRE для работы с SED), поэтому вопрос заключается не только в следующем примере, но и в том, как использовать регулярное выражение PCRE в регулярном выражении SED в целом.
В этом примере вы извлекаете адрес электронной почты из строки и заменяете его "[emailaddr]".
echo "My email is [email protected]" | sed -e 's/[a-zA-Z0-9]+[@][a-zA-Z0-9]+[\.][A-Za-z]{2,4}/[emailaddr]/g'
Я попробовал следующее выражение regex:
([a-zA-Z0-9]+[@][a-zA-Z0-9]+[\.][A-Za-z]{2,4})
[a-zA-Z0-9]+[@][a-zA-Z0-9]+[\.][A-Za-z]{2,4}
([a-zA-Z0-9]+[@][a-zA-Z0-9]+[.][A-Za-z]{2,4})
[a-zA-Z0-9]+[@][a-zA-Z0-9]+[.][A-Za-z]{2,4}
Я попытался изменить разделитель sed с s/find/replace/g на s | find | replace | g, как описано здесь (переполнение стека: pcre regex в sed regex ).
Я все еще не могу понять, как использовать регулярное выражение PCRE в SED, или как преобразовать регулярное выражение PCRE в SED. Любая помощь будет отличной.