$ cat foobar http://colombia.com http://gmail.com/ http://www.glud.co
Ejemplo 1: Reemplazar los dominios .com y .co por .gov
$ sed -E 's#(.com|.co)#.gov#g' foobar http:/.govlombia.gov http://gmail.gov/ http://www.glud.gov
Ejemplo 2: Reemplazar solamente los dominios que terminan por ".com" o ".com/" por ".gov"
$ sed -E 's#(.com|.com/)$#\.gov#g' foobar http://colombia.gov http://gmail.gov http://www.glud.co
Ejemplo 3: Reemplazar solamente los dominios que terminan por ".com" o ".com/" por ".gov" y ".gov/" respectivamente.
Este incluye que primero evalúa la condición de terminar con ".com" o ".com/" y luego hace un simple reemplazo global de ".com" por ".gov".
$ sed -E '/(.com|.com\/)$/s/.com/.gov/g' foobar http://colombia.com http://gmail.com/ http://www.glud.co
Ejemplo 4: Lo mismo de arriba pero con muchas expresiones seguidas.
$ sed -E '/(.com|.com\/)$/s/.com/.gov/g;/(.gov|.gov\/)$/s/http/https/g' foobar https://colombia.gov https://gmail.gov/ http://www.glud.coTen en cuenta que para la segunda validación no se puede usar "/(.com|.com\/)$/s/http/https/g", porque en ese punto ".com" ya fue reemplazado por ".gov".
O
$ sed -E -e '/(.com|.com\/)$/s/.com/.gov/g' -e '/(.gov|.gov\/)$/s/http/https/g' foobar https://colombia.gov https://gmail.gov/ http://www.glud.co
O
$ sed -Ee '/(.com|.com\/)$/s/.com/.gov/g' -Ee '/(.gov|.gov\/)$/s/http/https/g' https://colombia.gov https://gmail.gov/ http://www.glud.co
Referencias:
- https://linuxconfig.org/how-to-substitute-only-a-first-match-occurrence-using-sed-command
- https://www.linuxtopia.org/online_books/linux_tool_guides/the_sed_faq/sedfaq4_004.html
- https://www.gnu.org/software/sed/manual/html_node/Regular-Expressions.html
- https://unix.stackexchange.com/questions/155805/sed-replace-first-k-instances-of-a-word-in-the-file
- https://www.tutorialspoint.com/unix/unix-regular-expressions.htm
No hay comentarios:
Publicar un comentario