
{"id":29527,"date":"2026-03-30T10:16:00","date_gmt":"2026-03-30T08:16:00","guid":{"rendered":"https:\/\/contabo.com\/blog\/como-usar-el-comando-sed-de-linux-en-2026\/"},"modified":"2026-04-10T12:21:23","modified_gmt":"2026-04-10T10:21:23","slug":"como-usar-el-comando-sed-de-linux-en-2026","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/es\/como-usar-el-comando-sed-de-linux-en-2026\/","title":{"rendered":"C\u00f3mo usar el comando sed de Linux en 2026"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet.webp\" alt=\"C\u00f3mo usar el comando sed de Linux en 2026\" class=\"wp-image-28521\" srcset=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet.webp 1200w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet-600x315.webp 600w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet-768x403.webp 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Todo administrador de sistemas se topa con el mismo problema tarde o temprano: tienes 400 archivos de configuraci\u00f3n, una direcci\u00f3n IP incorrecta en todos ellos y exactamente cero ganas de abrir cada uno manualmente. Ah\u00ed es donde el comando sed justifica su uso.<\/p>\n\n\n\n<p>El comando <strong>sed<\/strong> de Linux (abreviatura de stream editor) permite buscar, reemplazar, insertar y eliminar texto en archivos directamente desde la terminal. Sin interfaz gr\u00e1fica, sin editor de texto, sin navegar por men\u00fas. Introduce datos y obt\u00e9n la salida transformada. Gestiona patrones regex, trabaja con entrada canalizada y procesa archivos de cualquier tama\u00f1o sin dificultad.<\/p>\n\n\n\n<p>Esta gu\u00eda cubre la sintaxis del comando sed, sus opciones, ejemplos pr\u00e1cticos y casos de uso reales. Si nunca has usado sed, al final tendr\u00e1s un dominio s\u00f3lido de la herramienta. Si ya conoces lo b\u00e1sico, las secciones sobre procesamiento por lotes y referencias inversas deber\u00edan llenar los vac\u00edos.<\/p>\n\n\n\n<p>Sed funciona en un ciclo simple: lee una l\u00ednea, aplica los comandos, imprime el resultado y repite. Nunca carga todo el archivo en memoria, lo que significa que puede procesar archivos de registro de varios gigabytes sin dificultad. Ese enfoque l\u00ednea a l\u00ednea es lo que lo hace tan eficiente para la automatizaci\u00f3n mediante scripts y una de las razones por las que ha sobrevivido desde los a\u00f1os 70.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-sintaxis-y-opciones-del-comando-sed\">Sintaxis y opciones del comando sed<\/h2>\n\n\n\n<p>La sintaxis general de sed es la siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed &#91;options] 'script' filename<\/code><\/pre>\n\n\n\n<p>La parte del script contiene el subcomando, el patr\u00f3n de b\u00fasqueda, la cadena de reemplazo y los indicadores. Estos se escriben entre comillas simples y se separan por un delimitador, que generalmente es una barra diagonal (\/). Tambi\u00e9n puedes usar la barra vertical o la coma como delimitadores cuando tu patr\u00f3n contiene barras.<\/p>\n\n\n\n<p>A continuaci\u00f3n se muestran las opciones de sed m\u00e1s comunes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>-i<\/strong> &#8212; sobrescribe el archivo original en su lugar. El indicador m\u00e1s potente y \u00fatil.<\/li>\n\n\n\n<li><strong>-n<\/strong> &#8212; suprime la impresi\u00f3n autom\u00e1tica. Solo las l\u00edneas que imprimas expl\u00edcitamente con p aparecer\u00e1n.<\/li>\n\n\n\n<li><strong>-e<\/strong> &#8212; permite encadenar m\u00faltiples comandos en una sola llamada a sed.<\/li>\n\n\n\n<li><strong>-f<\/strong> &#8212; lee comandos desde un archivo de script externo.<\/li>\n\n\n\n<li><strong>&#8211;help<\/strong> &#8212; muestra informaci\u00f3n de uso.<\/li>\n\n\n\n<li><strong>&#8211;debug<\/strong> &#8212; anota la ejecuci\u00f3n en la terminal.<\/li>\n\n\n\n<li><strong>-b<\/strong> &#8212; abre archivos en modo binario.<\/li>\n\n\n\n<li><strong>-l<\/strong> &#8212; establece la longitud de ajuste de l\u00ednea para el comando l.<\/li>\n<\/ul>\n\n\n\n<p>El comando m\u00e1s utilizado es s (sustituir). Su sintaxis:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>'s\/regex_pattern\/replacement\/flags'<\/code><\/pre>\n\n\n\n<p>Los indicadores de sed que modifican el comportamiento de sustituci\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>g<\/strong> &#8212; reemplazo global. Afecta a todas las coincidencias en la l\u00ednea, no solo a la primera.<\/li>\n\n\n\n<li><strong>p<\/strong> &#8212; imprime la l\u00ednea modificada como salida adicional.<\/li>\n\n\n\n<li><strong>i<\/strong> &#8212; coincidencia sin distinci\u00f3n entre may\u00fasculas y min\u00fasculas.<\/li>\n\n\n\n<li><em>N\u00famero<\/em> &#8212; reemplaza solo la en\u00e9sima aparici\u00f3n (por ejemplo, 2 reemplaza la segunda coincidencia).<\/li>\n<\/ul>\n\n\n\n<p>Puedes combinar indicadores. El indicador gi realiza una sustituci\u00f3n global sin distinci\u00f3n entre may\u00fasculas y min\u00fasculas.<\/p>\n\n\n\n<p>Una cosa que vale la pena saber: el delimitador no tiene que ser una barra. Si est\u00e1s trabajando con rutas de archivos o URL llenas de barras, usa una barra vertical o una coma en su lugar. sed &#8216;s|\/old\/path|\/new\/path|g&#8217; resulta mucho m\u00e1s legible que escapar cada barra. Utiliza cualquier car\u00e1cter que no aparezca en las cadenas de b\u00fasqueda o reemplazo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-como-instalar-sed-en-linux\">C\u00f3mo instalar sed en Linux<\/h2>\n\n\n\n<p>Es muy probable que sed ya est\u00e9 instalado en tu sistema, ya que se incluye con pr\u00e1cticamente todas las distribuciones de Linux. Pero si utilizas alguna imagen de contenedor simplificada o instalaci\u00f3n m\u00ednima, a continuaci\u00f3n se explica c\u00f3mo instalarlo:<\/p>\n\n\n\n<p>Actualiza tu lista de paquetes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update<\/code><\/pre>\n\n\n\n<p>Instala el paquete sed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install sed<\/code><\/pre>\n\n\n\n<p>Verifica la instalaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed --version<\/code><\/pre>\n\n\n\n<p>Si muestra un n\u00famero de versi\u00f3n, la instalaci\u00f3n es correcta. En distribuciones basadas en RHEL\/CentOS, sustituye apt-get por yum o dnf. El nombre del paquete se mantiene igual en todas las distribuciones.<\/p>\n\n\n\n<p>En Arch Linux, sed es parte del grupo base y deber\u00eda estar presente. En Alpine (com\u00fan en im\u00e1genes de Docker), usa apk add sed. Si utilizas macOS, el sed predeterminado es la versi\u00f3n BSD, que se comporta de forma ligeramente diferente a GNU sed. La mayor\u00eda de los tutoriales en l\u00ednea asumen GNU sed, por lo que se recomienda instalarlo mediante Homebrew con brew install gnu-sed para evitar incompatibilidades.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ejemplos-de-comandos-sed\">Ejemplos de comandos sed<\/h2>\n\n\n\n<p>A continuaci\u00f3n se presentan 10 ejemplos pr\u00e1cticos del comando sed que cubren las operaciones m\u00e1s habituales. Cada comando deja el archivo original intacto. A\u00f1ade -i cuando est\u00e9s listo para aplicar los cambios.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-buscar-y-reemplazar-una-cadena-con-sed\">Buscar y reemplazar una cadena con sed<\/h3>\n\n\n\n<p>El uso m\u00e1s com\u00fan de sed. La sintaxis de b\u00fasqueda y reemplazo de sed es muy sencilla:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/old_string\/new_string\/' myfilename.txt<\/code><\/pre>\n\n\n\n<p>Supongamos que tienes un archivo llamado scenery.txt y necesitas cambiar \u00abim\u00e1genes\u00bb por \u00abfotos\u00bb:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/images\/photos\/' scenery.txt<\/code><\/pre>\n\n\n\n<p>Esta operaci\u00f3n de b\u00fasqueda y reemplazo solo afecta a la primera coincidencia en cada l\u00ednea. Si la cadena de b\u00fasqueda contiene barras, cambia a un delimitador diferente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's|\/usr\/local|\/opt|' config.txt<\/code><\/pre>\n\n\n\n<p>El archivo original permanece intacto. Sed env\u00eda resultados a stdout por defecto. Una vez confirmado que la salida es correcta, a\u00f1ade -i para escribir los cambios en el archivo. Prueba siempre primero; aplica los cambios despu\u00e9s.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-reemplazar-la-enesima-aparicion-en-una-linea\">Reemplazar la en\u00e9sima aparici\u00f3n en una l\u00ednea<\/h3>\n\n\n\n<p>Cuando una palabra aparece varias veces en la misma l\u00ednea y solo quieres cambiar una instancia espec\u00edfica, a\u00f1ade un indicador de n\u00famero:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/old_string\/new_string\/2' myfilename.txt<\/code><\/pre>\n\n\n\n<p>El 2 indica a sed que omita la primera coincidencia y reemplace solo la segunda. Por ejemplo, reemplaza la primera \u00abm\u00fasica\u00bb por \u00abcanci\u00f3n\u00bb:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/music\/song\/1' playlist.txt<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-reemplazar-todas-las-apariciones-con-el-indicador-g\">Reemplazar todas las apariciones con el indicador g<\/h3>\n\n\n\n<p>Sin el indicador g, sed se detiene despu\u00e9s de la primera coincidencia por l\u00ednea. El indicador de reemplazo global de sed soluciona eso:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/eagle\/falcon\/g' birds.txt<\/code><\/pre>\n\n\n\n<p>Cada \u00ab\u00e1guila\u00bb en cada l\u00ednea se convierte en \u00abhalc\u00f3n\u00bb. Esto es lo que la mayor\u00eda de los usuarios busca al pensar en b\u00fasqueda y reemplazo. Sin el indicador g, sed solo afecta la primera coincidencia por l\u00ednea. Este comportamiento predeterminado suele confundir a los usuarios menos experimentados. Si la sustituci\u00f3n parece omitir algunas coincidencias, el indicador g es casi con certeza lo que falta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-reemplazar-desde-la-enesima-a-todas-las-ocurrencias\">Reemplazar desde la en\u00e9sima a todas las ocurrencias<\/h3>\n\n\n\n<p>Puedes combinar un n\u00famero con el indicador g para comenzar a reemplazar desde una ocurrencia espec\u00edfica en adelante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/pisces\/aquarius\/2g' astrology.txt<\/code><\/pre>\n\n\n\n<p>Esto omite la primera \u00abpiscis\u00bb en cada l\u00ednea y reemplaza desde la segunda ocurrencia hasta la \u00faltima. Espec\u00edfico, pero \u00fatil cuando los datos tienen una estructura predecible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-parentesis-del-primer-caracter-de-las-palabras\">Par\u00e9ntesis del primer car\u00e1cter de las palabras<\/h3>\n\n\n\n<p>Un ejemplo de sed con expresiones regulares extendidas y un grupo de captura:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"An example of the sed command\" | sed -E 's\/(\\b\\w)\/(\\1)\/g'<\/code><\/pre>\n\n\n\n<p>Salida: <code>(A)n (e)xample (o)f (t)he (s)ed (c)ommand<\/code><\/p>\n\n\n\n<p>Para procesar un archivo en lugar de entrada canalizada, elimina el comando echo y a\u00f1ade el nombre del archivo al final.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-reemplazar-una-cadena-en-una-linea-especifica\">Reemplazar una cadena en una l\u00ednea espec\u00edfica<\/h3>\n\n\n\n<p>Antep\u00f3n el n\u00famero de l\u00ednea al comando s para reemplazar el contenido de una l\u00ednea espec\u00edfica en esa posici\u00f3n exacta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed '2s\/cake\/bread\/' foods.txt<\/code><\/pre>\n\n\n\n<p>Solo la l\u00ednea 2 se ve afectada. Todo lo dem\u00e1s pasa sin cambios. Esto es \u00fatil cuando sabes exactamente qu\u00e9 l\u00ednea contiene el valor que necesitas corregir.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-imprimir-lineas-reemplazadas-con-la-bandera-p\">Imprimir l\u00edneas reemplazadas con la bandera \/p<\/h3>\n\n\n\n<p>El indicador p duplica cualquier l\u00ednea modificada en la salida:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/phones\/tablets\/p' gadgets.txt<\/code><\/pre>\n\n\n\n<p>Las l\u00edneas no modificadas se imprimen una vez. Las l\u00edneas modificadas se imprimen dos veces: una como salida normal y otra como impresi\u00f3n adicional. Esto resulta \u00fatil para identificar r\u00e1pidamente qu\u00e9 l\u00edneas afecta el patr\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-reemplazar-una-cadena-en-un-rango-de-lineas\">Reemplazar una cadena en un rango de l\u00edneas<\/h3>\n\n\n\n<p>Puedes restringir una sustituci\u00f3n a un rango de l\u00edneas espec\u00edfico:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed '3,5 s\/germany\/france\/' countries.txt<\/code><\/pre>\n\n\n\n<p>Solo las l\u00edneas 3 a 5 son procesadas. Las l\u00edneas antes y despu\u00e9s se dejan sin cambios. \u00datil para editar un bloque concreto en un archivo de configuraci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-imprimir-solo-las-lineas-reemplazadas\">Imprimir solo las l\u00edneas reemplazadas<\/h3>\n\n\n\n<p>Combina la opci\u00f3n -n con el indicador p para suprimir toda salida predeterminada y mostrar solo las l\u00edneas modificadas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -n 's\/green\/blue\/3p' colors.txt<\/code><\/pre>\n\n\n\n<p>Modo silencioso: solo se imprimen las l\u00edneas donde ocurri\u00f3 una sustituci\u00f3n. \u00datil para verificar que el patr\u00f3n funciona antes de ejecutar con -i.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-eliminar-lineas-de-un-archivo-usando-sed\">Eliminar l\u00edneas de un archivo usando sed<\/h3>\n\n\n\n<p>El comando d es la herramienta de sed para eliminar l\u00edneas. Eliminar una sola l\u00ednea por n\u00famero:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed '1d' cities.txt<\/code><\/pre>\n\n\n\n<p>Eliminar un rango:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed '1,3d' cars.txt<\/code><\/pre>\n\n\n\n<p>Para eliminar desde la l\u00ednea 2 hasta el final del archivo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><\/code><\/pre>\n\n\n\n<p>Eliminar la \u00faltima l\u00ednea:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed '$d' filename.txt<\/code><\/pre>\n\n\n\n<p>Eliminar todas las l\u00edneas que coincidan con un patr\u00f3n (<strong>sed eliminar l\u00edneas<\/strong> por regex):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed '\/oabo\/d' filestrings.txt<\/code><\/pre>\n\n\n\n<p>Esto elimina cada l\u00ednea que contiene \u00aboabo\u00bb de la salida. Comb\u00ednalo con -i y dispondr\u00e1s de un comando que limpia un archivo en milisegundos.<\/p>\n\n\n\n<p>Un uso frecuente: eliminar l\u00edneas de comentarios de archivos de configuraci\u00f3n antes de procesarlos. Algo como sed &#8216;\/^#\/d&#8217; config.conf elimina todas las l\u00edneas que comienzan con un hash. Tambi\u00e9n puedes encadenar m\u00faltiples patrones de eliminaci\u00f3n mediante el indicador -e para limpiarlos en una sola pasada.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-casos-de-uso-del-comando-sed\">Casos de uso del comando sed<\/h2>\n\n\n\n<p>Los ejemplos anteriores cubren la sintaxis. Ahora veamos c\u00f3mo usar sed en tareas reales de administraci\u00f3n de servidores.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-sed-para-procesamiento-de-archivos-por-lotes\">sed para procesamiento de archivos por lotes<\/h3>\n\n\n\n<p>Hay dos enfoques. El primero consiste en listar m\u00faltiples archivos expl\u00edcitamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/old_string\/new_string\/g' file1.txt file2.txt file3.txt<\/code><\/pre>\n\n\n\n<p>El segundo consiste en utilizar find para analizar un directorio. Este es el enfoque m\u00e1s potente para reemplazo a gran escala:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/etc\/myapp\/ -type f -exec sed -i 's\/old_string\/new_string\/g' {} \\;<\/code><\/pre>\n\n\n\n<p>Advertencia justa: la bandera <code>-i<\/code> aqu\u00ed reescribe archivos en su lugar. Crea copias de seguridad primero. Puedes pasar <code>-i.bak<\/code> para que sed cree una copia de seguridad de cada archivo autom\u00e1ticamente antes de modificarlo.<\/p>\n\n\n\n<p>Aqu\u00ed es donde sed resulta especialmente valioso para los administradores de sistemas. Imagina que has migrado un servicio a una nueva IP y necesitas actualizar la direcci\u00f3n en cada configuraci\u00f3n de Nginx, cada trabajo cron y cada script que lo referencia. Un comando find+sed y el problema queda resuelto en segundos. La edici\u00f3n manual llevar\u00eda el resto de la tarde.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-sed-para-analisis-de-archivos-de-registro\">sed para an\u00e1lisis de archivos de registro<\/h3>\n\n\n\n<p>Sed no es solo para editar: tambi\u00e9n es una herramienta eficaz de regex para extracci\u00f3n. Para extraer patrones espec\u00edficos de archivos de registro y redirigir a un nuevo archivo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -n 's\/Error: \\(.*\\)\/\\1\/p' logfile.log &gt; error_logs.txt<\/code><\/pre>\n\n\n\n<p>Ese comando encuentra cada l\u00ednea que comienza con \u00abError:\u00bb y extrae todo lo que aparece despu\u00e9s. Cambia el patr\u00f3n para que coincida con marcas de tiempo, direcciones IP o lo que est\u00e9s buscando. No es tan potente como awk o grep para an\u00e1lisis complejos, pero para extracciones r\u00e1pidas, sed lo resuelve en una l\u00ednea.<\/p>\n\n\n\n<p>Un patr\u00f3n pr\u00e1ctico: extraer todos los c\u00f3digos de estado 404 de un registro de acceso, o extraer solo las marcas de tiempo de entradas que mencionan un servicio espec\u00edfico. La principal ventaja de sed en este contexto es la capacidad de encontrar y transformar en un solo paso, en lugar de buscar coincidencias con grep y luego usar cut o awk para los campos necesarios.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-sed-para-edicion-de-etiquetas-html-y-xml\">sed para edici\u00f3n de etiquetas HTML y XML<\/h3>\n\n\n\n<p>\u00bfNecesitas cambiar un atributo en varios archivos HTML? El comando sed gestiona etiquetas de marcado sin problemas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/\\(&lt;h&#91;1-6].*color:\\) &#91;^;]*\/\\1 black\/g' webpage.html<\/code><\/pre>\n\n\n\n<p>Eso encuentra cualquier etiqueta h1 hasta h6 con un estilo de color en l\u00ednea y cambia el valor a negro. XML funciona de la misma manera. Aseg\u00farate de gestionar correctamente los corchetes angulares y escaparlos.<\/p>\n\n\n\n<p>Este enfoque es adecuado para correcciones r\u00e1pidas en archivos HTML est\u00e1ticos. Si necesitas cambiar un nombre de clase en cada div, actualizar una URL de CDN en etiquetas de script o eliminar atributos obsoletos de marcado antiguo, sed lo gestiona sin necesidad de un analizador XML completo. Dicho esto, para estructuras XML profundamente anidadas o complejas, una herramienta de an\u00e1lisis especializada como xmlstarlet es la opci\u00f3n m\u00e1s segura. Sed trata todo como texto plano, por lo que no advertir\u00e1 si la expresi\u00f3n regular coincide accidentalmente con contenido dentro de un bloque de comentario o CDATA.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-usando-sed-con-archivos-de-scripts-externos\">Usando sed con archivos de scripts externos<\/h3>\n\n\n\n<p>Cuando se ejecutan m\u00faltiples comandos sed, incluirlos todos en una l\u00ednea resulta poco pr\u00e1ctico. Es preferible escribirlos en un archivo externo.<\/p>\n\n\n\n<p>Crea un archivo de script:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano script.sed<\/code><\/pre>\n\n\n\n<p>Agrega tus comandos, uno por l\u00ednea (no se necesitan comillas):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>s\/old_pattern1\/new_pattern1\/g<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\/old_pattern2\/d<\/code><\/pre>\n\n\n\n<p>Ejec\u00fatalo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -f script.sed target_file.txt<\/code><\/pre>\n\n\n\n<p>M\u00e1s limpio, controlable por versiones y menos propenso a causar problemas con las comillas. Para cualquier operaci\u00f3n que requiera m\u00e1s de dos o tres comandos, utiliza un archivo de script.<\/p>\n\n\n\n<p>Los archivos de script tambi\u00e9n hacen que las operaciones sed sean repetibles. Incl\u00fayelos en el repositorio del proyecto, a\u00f1ade un comentario al inicio que explique su funci\u00f3n, y dispondr\u00e1s de una transformaci\u00f3n de texto documentada que cualquier miembro del equipo puede ejecutar, lo que resulta mucho mejor que una l\u00ednea en el historial de bash que nadie puede reconstruir meses despu\u00e9s.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-referencias-inversas-en-regex-de-sed\">Referencias inversas en regex de sed<\/h3>\n\n\n\n<p>Una referencia inversa de sed permite capturar parte de una coincidencia y reutilizarla en el reemplazo. La parte capturada se denomina grupo de captura, delimitada por par\u00e9ntesis escapados.<\/p>\n\n\n\n<p>Ejemplo cl\u00e1sico: reordenar \u00ab\u00daltimo, Primero\u00bb a \u00abPrimero \u00daltimo\u00bb:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"Doe, John\" | sed 's\/\\(.*\\), \\(.*\\)\/\\2 \\1\/'<\/code><\/pre>\n\n\n\n<p>Salida: <code>John Doe<\/code><\/p>\n\n\n\n<p>\\1 se refiere al primer grupo de captura (\u00abDoe\u00bb), \\2 al segundo (\u00abJohn\u00bb). Una expresi\u00f3n regular sed con referencias inversas puede gestionar el reformateo de fechas, reordenar columnas CSV o extraer subcadenas de texto estructurado. Es una de las caracter\u00edsticas que eleva sed de \u00ab\u00fatil\u00bb a \u00abgenuinamente potente\u00bb.<\/p>\n\n\n\n<p>Puedes usar hasta nueve grupos de captura en una sola expresi\u00f3n sed. En la pr\u00e1ctica, si se superan tres o cuatro grupos, es preferible usar Perl o Python. Pero para operaciones de dos grupos como intercambiar campos, invertir formatos de nombres o reestructurar registros simples, las referencias inversas de sed son r\u00e1pidas de escribir y de ejecutar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-preguntas-frecuentes-sobre-el-comando-sed-de-linux\">Preguntas frecuentes sobre el comando sed de Linux<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1773928518579\"><strong class=\"schema-faq-question\">\u00bfQu\u00e9 es el comando sed en Linux?<\/strong> <p class=\"schema-faq-answer\">El comando sed en Linux es un editor de flujo que filtra y transforma texto desde la l\u00ednea de comandos. Lee la entrada l\u00ednea por l\u00ednea, aplica las reglas de edici\u00f3n y env\u00eda el resultado a la salida est\u00e1ndar, sin necesidad de abrir un archivo en un editor. Forma parte de Unix desde la d\u00e9cada de 1970 y sigue siendo una de las formas m\u00e1s r\u00e1pidas de manipular texto en cualquier sistema Linux. Sed admite expresiones regulares, trabaja con entrada canalizada y gestiona archivos de cualquier tama\u00f1o porque los procesa una l\u00ednea a la vez en lugar de cargar todo en memoria.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928527016\"><strong class=\"schema-faq-question\">\u00bfEn qu\u00e9 se diferencia sed de grep?<\/strong> <p class=\"schema-faq-answer\">Ambas son herramientas de procesamiento de texto, pero realizan funciones diferentes. Grep busca patrones en archivos e imprime las l\u00edneas coincidentes. Sed puede buscar y modificar: sustituir texto, eliminar l\u00edneas, insertar contenido, reordenar cadenas. Grep es como una linterna (encuentra elementos) y sed es como una navaja suiza (encuentra y transforma).<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928535598\"><strong class=\"schema-faq-question\">\u00bfC\u00f3mo se usa sed en un script bash?<\/strong> <p class=\"schema-faq-answer\">Dentro de scripts bash, sed cumple generalmente tres funciones: imprimir l\u00edneas espec\u00edficas en stdout, eliminar texto no deseado y reemplazar cadenas. Puedes asignar la salida de sed a variables, canalizarla a otros comandos o utilizarla para modificar archivos de configuraci\u00f3n durante despliegues automatizados. La sintaxis se mantiene id\u00e9ntica a la que usar\u00edas de forma interactiva. Un patr\u00f3n com\u00fan es usar variables de shell dentro de comandos de sed con comillas dobles: sed \u00abs\/<math xmlns=\"http:\/\/www.w3.org\/1998\/Math\/MathML\"><semantics><mrow><mi>O<\/mi><mi>L<\/mi><mi>D<\/mi><mi mathvariant=\"normal\">\/<\/mi><\/mrow><\/semantics><\/math>OLD\/NEW\/g\u00bb file.txt. Las comillas simples impiden la expansi\u00f3n de variables, por lo que debes usar comillas dobles cuando los patrones provengan de variables.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928544391\"><strong class=\"schema-faq-question\">\u00bfC\u00f3mo se diferencia sed de awk?<\/strong> <p class=\"schema-faq-answer\">Sed gestiona la sustituci\u00f3n, eliminaci\u00f3n e inserci\u00f3n de texto de forma directa. Awk es un lenguaje de programaci\u00f3n completo dise\u00f1ado para el procesamiento de datos estructurados en columnas. Admite variables, condicionales, bucles y aritm\u00e9tica. Regla general: si se trata de reemplazar una cadena, usa sed. Si se trata de sumar una columna de n\u00fameros o realizar operaciones similares a las de una hoja de c\u00e1lculo, opta por awk. La diferencia entre sed y awk se reduce a simplicidad frente a potencia.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928553696\"><strong class=\"schema-faq-question\">\u00bfC\u00f3mo eliminar l\u00edneas en blanco con sed?<\/strong> <p class=\"schema-faq-answer\">Usa el comando d con un patr\u00f3n que coincida con l\u00edneas vac\u00edas:<br>sed &#8216;\/^$\/d&#8217; myfilename.txt<br>La expresi\u00f3n regular ^$ coincide con l\u00edneas que no tienen nada entre el inicio y el final. Este es uno de los usos m\u00e1s frecuentes de sed para eliminar l\u00edneas en blanco. A\u00f1ade -i para editar el archivo directamente.<\/p> <\/div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Todo administrador de sistemas se topa con el mismo problema tarde o temprano: tienes 400 archivos de configuraci\u00f3n, una direcci\u00f3n IP incorrecta en todos ellos y exactamente cero ganas de abrir cada uno manualmente. Ah\u00ed es donde el comando sed justifica su uso. El comando sed de Linux (abreviatura de stream editor) permite buscar, reemplazar, [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":28523,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1988],"tags":[],"ppma_author":[3402],"class_list":["post-29527","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriales"],"uagb_featured_image_src":{"full":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet.webp",1200,630,false],"thumbnail":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet-150x150.webp",150,150,true],"medium":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet-600x315.webp",600,315,true],"medium_large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet-768x403.webp",768,403,true],"large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet.webp",1200,630,false],"1536x1536":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet.webp",1200,630,false],"2048x2048":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_linux-sed-command-cheat-sheet.webp",1200,630,false]},"uagb_author_info":{"display_name":"Milan Ivanovic","author_link":"https:\/\/contabo.com\/blog\/es\/author\/milan\/"},"uagb_comment_info":0,"uagb_excerpt":"Todo administrador de sistemas se topa con el mismo problema tarde o temprano: tienes 400 archivos de configuraci\u00f3n, una direcci\u00f3n IP incorrecta en todos ellos y exactamente cero ganas de abrir cada uno manualmente. Ah\u00ed es donde el comando sed justifica su uso. El comando sed de Linux (abreviatura de stream editor) permite buscar, reemplazar,&hellip;","authors":[{"term_id":3402,"user_id":0,"is_guest":1,"slug":"contabro","display_name":"ContaBro","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts\/29527","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=29527"}],"version-history":[{"count":5,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts\/29527\/revisions"}],"predecessor-version":[{"id":29860,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts\/29527\/revisions\/29860"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/media\/28523"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=29527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=29527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=29527"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=29527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}