Para ser claros: en macOS , a partir de Mojave (10.14), sed
que es la implementación de BSD , NO admite la coincidencia que no distingue entre mayúsculas y minúsculas , es difícil de creer, pero es cierto. La respuesta aceptada anteriormente , que en sí misma muestra un comando GNU sed
, ganó ese estado debido a la perl
solución basada en la mencionada en los comentarios.
Para que la solución Perl también funcione con caracteres extranjeros , a través de UTF-8, use algo como:
perl -C -Mutf8 -pe 's/öœ/oo/i' <<< "FÖŒ" # -> "Foo"
-C
activa la compatibilidad con UTF-8 para transmisiones y archivos, asumiendo que la configuración regional actual está basada en UTF-8.
-Mutf8
le dice a Perl que interprete el código fuente como UTF-8 (en este caso, la cadena pasada a -pe
) - este es el equivalente más corto del más detallado -e 'use utf8;'.
Gracias, Mark Reed
(Tenga en cuenta que el uso awk
tampoco es una opción , ya que awk
en macOS (es decir, BWK awk , también conocido como BSD awk ) parece desconocer por completo las configuraciones regionales: sus funciones tolower()
y toupper()
ignoran los caracteres extranjeros (y sub()
/ gsub()
no tienen indicadores que no distingan entre mayúsculas y minúsculas para empezar con).)
I
es una extensión GNU que puede no estar disponible con su copia de sed.