GNU/Linux >> Tutoriales Linux >  >> Linux

20 ejemplos de comandos Sed (Stream Editor) para usuarios de Linux

Comando Sed o Stream Editor es una utilidad muy potente que ofrecen los sistemas Linux/Unix. Se utiliza principalmente para sustitución de texto , buscar y reemplazar, pero también puede realizar otras manipulaciones de texto como inserción , eliminación , buscar etc. Con SED, podemos editar archivos completos sin tener que abrirlo. Sed también admite el uso de expresiones regulares, lo que convierte a sed en una herramienta de manipulación de pruebas aún más poderosa. .

En este artículo, aprenderemos a usar el comando SED con la ayuda de algunos ejemplos. La sintaxis básica para usar el comando sed es,

OPCIONES sed… [GUIÓN] [ARCHIVO DE ENTRADA…]

Ahora veamos algunos ejemplos.

Ejemplo:1) Mostrar texto parcial de un archivo

Con sed, podemos ver solo una parte de un archivo en lugar de ver el archivo completo. Para ver algunas líneas del archivo, use el siguiente comando,

[[email protected] ~]$ sed -n 22,29p testfile.txt

aquí, la opción 'n' suprime la impresión de todo el archivo y la opción 'p' imprimirá solo las líneas del 22 al 29.

Ejemplo :2) Mostrar todo excepto algunas líneas

Para mostrar todo el contenido de un archivo excepto una parte, use el siguiente comando,

[[email protected] ~]$ sed 22,29d testfile.txt

La opción 'd' eliminará las líneas mencionadas de la salida.

Ejemplo:3) Mostrar cada 3.ª línea comenzando con la línea N.

Muestre el contenido de cada 3ra línea comenzando con el número de línea 2 o cualquier otra línea, use el siguiente comando

[[email protected] ~]$ sed -n '2~3p' file.txt

Ejemplo :4 ) Eliminar una línea usando el comando sed

Para eliminar una línea con sed de un archivo, use el siguiente comando,

[[email protected] ~]$ sed Nd testfile.txt

donde 'N' es el número de línea y la opción 'd' eliminará el número de línea mencionado. Para eliminar la última línea del archivo, utilice

[[email protected] ~]$ sed $d testfile.txt

Ejemplo :5) Eliminar un rango de líneas

Para eliminar un rango de líneas del archivo, ejecute

[[email protected] ~]$ sed '29,34d' testfile.txt

Esto eliminará las líneas 29 a 34 del archivo testfile.txt.

Ejemplo :6) Eliminar líneas distintas a las mencionadas

Para eliminar líneas que no sean las líneas mencionadas de un archivo, usaremos '!'

[[email protected] ~]$ sed '29,34!d' testfile.txt

aquí la opción '!' se usa como no, por lo que invertirá la condición, es decir, no eliminará las líneas mencionadas. Todas las líneas restantes de la 29 a la 34 se eliminarán de los archivos testfile.txt.

Ejemplo:7) Añadir líneas/espacios en blanco

Para agregar una línea en blanco después de cada línea que no esté en blanco, usaremos la opción 'G',

[[email protected] ~]$ sed G testfile.txt

Ejemplo:8) Buscar y reemplazar una cadena usando sed

Para buscar y reemplazar una cadena del archivo, usaremos el siguiente ejemplo,

[[email protected] ~]$ sed 's/danger/safety/' testfile.txt

aquí la opción 's' buscará la palabra 'peligro' y la reemplazará con 'seguridad' en cada línea solo para la primera aparición.

Ejemplo:9) Buscar y reemplazar una cadena de todo el archivo usando sed

Para reemplazar la palabra completamente del archivo, usaremos la opción 'g'  con 's',

[[email protected] ~]$ sed 's/danger/safety/g' testfile.txt

Ejemplo:10) Reemplace la enésima aparición del patrón de cadena

También podemos sustituir una cadena en la enésima aparición de un archivo. Como reemplazar 'peligro' con 'seguridad' solo en la segunda aparición,

[[email protected] ~]$ sed ‘s/danger/safety/2’ testfile.txt

Para reemplazar 'peligro' en la segunda aparición de cada línea de todo el archivo, use

[[email protected] ~]$ sed 's/danger/safety/2g' testfile.txt

Ejemplo:11) Reemplazar una cadena en una línea en particular

Para reemplazar una cadena solo de una línea en particular, use

[[email protected] ~]$ sed '4 s/danger/safety/' testfile.txt

Esto solo sustituirá la cadena de la cuarta línea del archivo. También podemos mencionar un rango de líneas en lugar de una sola línea,

[[email protected] ~]$  sed '4,9 s/danger/safety/' testfile.txt

Ejemplo:12) Agregar una línea después/antes de la búsqueda coincidente

Para agregar una nueva línea con algún contenido después de cada coincidencia de patrón, use la opción 'a',

[[email protected] ~]$ sed '/danger/a "This is new line with text after match"' testfile.txt

Para agregar una nueva línea con algo de contenido antes de cada coincidencia de patrón, use la opción 'i',

[[email protected] ~]$ sed '/danger/i "This is new line with text before match" ' testfile.txt

Ejemplo:13) Cambiar una línea completa con un patrón coincidente

Para cambiar una línea completa a una línea nueva cuando un patrón de búsqueda coincide, necesitamos usar la opción 'c' con sed,

[[email protected] ~]$ sed '/danger/c "This will be the new line" ' testfile.txt

Entonces, cuando el patrón coincida con "peligro", la línea completa se cambiará a la línea mencionada.

Opciones avanzadas con sed

Hasta ahora solo usábamos expresiones simples con sed, ahora discutiremos algunos usos avanzados de sed con expresiones regulares,

Ejemplo:14) Ejecutar múltiples comandos sed

Si necesitamos realizar múltiples expresiones sed, podemos usar la opción 'e' para encadenar los comandos sed,

[[email protected] ~]$  sed -e 's/danger/safety/g' -e 's/hate/love/' testfile.txt

Ejemplo :15) Hacer una copia de seguridad antes de editar un archivo

Para crear una copia de seguridad de un archivo antes de que lo editemos, use la opción '-i.bak',

[[email protected] ~]$ sed -i.bak -e 's/danger/safety/g'  testfile.txt

Esto creará una copia de seguridad del archivo con extensión .bak. También puede usar otra extensión si lo desea.

Ejemplo:16) Eliminar una línea de archivo que comienza y termina con un patrón

Para eliminar una línea que comienza con una cadena en particular y termina con otra cadena, use

[[email protected] ~]$ sed -e 's/^danger.*stops$//g' testfile.txt

Esto eliminará la línea con 'peligro' al inicio y 'paradas' al final y puede tener cualquier número de palabras en el medio, '.*' define esa parte.

Ejemplo :17) Añadir líneas

Para agregar algo de contenido antes de cada línea con sed y expresiones regulares, use

[[email protected] ~]$ sed -e 's/.*/testing sed &/' testfile.txt

Así que ahora cada línea tendrá 'testing sed' antes.

Ejemplo:18) Eliminar todas las líneas comentadas y líneas vacías

Para eliminar todas las líneas comentadas, es decir, líneas con # y todas las líneas vacías, use

[[email protected] ~]$ sed -e 's/#.*//;/^$/d' testfile.txt

Para eliminar solo las líneas comentadas, use

[[email protected] ~]$ sed -e 's/#.*//' testfile.txt

Ejemplo:19) Obtenga una lista de todos los nombres de usuario de /etc/passwd

Para obtener la lista de todos los nombres de usuario del archivo /etc/passwd, use

[[email protected] ~]$  sed 's/\([^:]*\).*/\1/' /etc/passwd

se generará una lista completa de todos los nombres de usuario en la pantalla como salida.

Ejemplo:20) Evite sobrescribir los enlaces del sistema con el comando sed

Se sabe que el comando 'sed -i' elimina los enlaces del sistema y crea solo archivos normales en lugar del archivo de enlace. Entonces, para evitar tal situación y prevenir 'sed -i ‘ de destruir los enlaces, use ‘–follow-symklinks ‘opciones con el comando que se está ejecutando.

Supongamos que quiero deshabilitar SELinux en CentOS o RHEL Severs

[[email protected] ~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

Estos fueron algunos ejemplos para mostrar sed, podemos usar estas referencias para emplearlas cuando sea necesario. Si tienen alguna consulta relacionada con este o cualquier artículo, compártanla con nosotros.

Leer también14 ejemplos de comandos SCP para transferir archivos de forma segura en Linux


Linux
  1. 8 consejos para la línea de comandos de Linux

  2. Tutorial de comandos para usuarios de Linux para principiantes (con ejemplos)

  3. Introducción a sed (Stream Editor):ejemplos útiles de comandos sed

  4. 10 Ejemplos de comandos Sed (Editor de flujo)

  5. Ejemplos de comandos sed en Linux

Tutorial de comandos OD de Linux para principiantes (6 ejemplos)

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)

Comando de localización de Linux para principiantes (8 ejemplos)

Micro:un editor de texto basado en la línea de comandos para Linux

Uso del comando sed de Linux con ejemplos