web-dev-qa-db-fra.com

sed avec PCRE (comme grep -P)

Je suis heureux que grepprenne en charge les expressions régulières compatibles Perl avec l’option -P.

Y a-t-il une raison pour laquelle l'outil sedne possède pas cette fonctionnalité?

6
guettli

Dans le cas de GNU Sed, le raison indiquée semble être

J'avais peur qu'il tombe dans l'une de ces "fissures" ... bien que d'après ce qui a été dit à l'époque, une partie du travail était déjà terminée et cela ressemblait à une affaire de docs et d'emballage ... (bien que j'avoue , en informatique, les derniers 10% du travail prend souvent 90% du temps ...

Voir Journaux de rapport de bogue GNU - Statut # 22801 sur la modification validée: mise à niveau des 'sed' RE pour y inclure la syntaxe perlRE - ou recherchez dans le sed-devel Archives "PCRE" si vous veux plus de détails.

N'oubliez pas que vous pouvez utiliser Perl lui-même pour la plupart des simples lignes simples pour lesquelles vous pouvez utiliser PCRE dans sed.

5
steeldriver

Solution de contournement:

Vous pouvez utiliser la liste des déchets pathologiques éclectiques:

Perl -pe 's/../../g' file

ou inline remplace:

Perl -pie 's/../../g' file

Cela fonctionne dans les cas où j'utilise sed. Si les choses se compliquent, j'écris un petit script python.

2
guettli