Antes de comenzar este tutorial, debe verificar la versión instalada de `sed` en su sistema operativo ejecutando el siguiente comando. El tutorial está diseñado en base a GNU sed. Por lo tanto, se requerirá esta versión de `sed` para practicar los ejemplos que se muestran en este tutorial.
El siguiente resultado muestra que GNU Sed de la versión 4.4 está instalado en el sistema.
Sintaxis:
Si no se proporciona un nombre de archivo con el comando `sed`, el script funcionará con datos de entrada estándar. El script `sed` se puede ejecutar sin ninguna opción.
Contenido :
- Sustitución de texto básica usando ‘sed’
- Reemplace todas las instancias de un texto en una línea particular de un archivo usando la opción ‘g’
- Reemplazar la segunda aparición solo de una coincidencia en cada línea
- Reemplazar la última aparición solo de una coincidencia en cada línea
- Reemplazar la primera coincidencia en un archivo con texto nuevo
- Reemplazar la última coincidencia en un archivo con texto nuevo
- Escapar de la barra invertida en los comandos de reemplazo para administrar la búsqueda y reemplazo de rutas de archivo
- Reemplace la ruta completa de todos los archivos con solo el nombre de archivo sin directorio
- Sustituya el texto, pero solo si se encuentra algún otro texto en la cadena
- Sustituya el texto, pero solo si no se encuentra otro texto en la cadena
- Agregue una cadena antes después del patrón coincidente usando ‘ \ 1 ‘
- Eliminar líneas coincidentes
- Eliminar la línea coincidente y 2 líneas después de la línea coincidente
- Eliminar todos los espacios al final de la línea de texto
- Elimine todas las líneas que tengan una coincidencia dos veces en la línea
- Eliminar todas las líneas que tienen el único espacio en blanco
- Eliminar todos los caracteres no imprimibles
- Si hay una coincidencia en la línea, agregue algo al final de la línea.
- Si hay una coincidencia en la línea, inserte la línea antes de la coincidencia
- Si hay una coincidencia en la línea, inserte una línea después de la coincidencia
- Si no hay una coincidencia, agregue algo al final de la línea.
- Si no hay coincidencia, elimine la línea.
- Duplique el texto coincidente después de agregar un espacio después del texto
- Reemplazar una de una lista de cadenas con la nueva cadena
- Reemplazar una cadena coincidente con una cadena que contiene nuevas líneas
- Elimine las líneas nuevas del archivo e inserte una coma al final de cada línea
- Quite las comas y agregue nuevas líneas para dividir el texto en varias líneas
- Encuentra coincidencias que no distinguen entre mayúsculas y minúsculas y elimina la línea
- Encuentra coincidencias que no distinguen entre mayúsculas y minúsculas y reemplaza con texto nuevo
- Encuentre coincidencias que no distingan entre mayúsculas y minúsculas y reemplácelas con mayúsculas del mismo texto
- Encuentre coincidencias que no distingan entre mayúsculas y minúsculas y reemplácelas con minúsculas del mismo texto
- Reemplazar todos los caracteres en mayúscula en el texto con caracteres en minúscula
- Busque el número en la línea y agregue el símbolo de moneda después del número
- Agregue comas a los números que tienen más de 3 dígitos
- Reemplazar los caracteres de tabulación con 4 caracteres de espacio
- Reemplazar 4 caracteres de espacio consecutivos con un carácter de tabulación
- Truncar todas las líneas a los primeros 80 caracteres
- Busque una expresión regular de cadena y agregue un texto estándar después de ella
- Busque una expresión regular de cadena y una segunda copia de la cadena encontrada después de ella
- Ejecución de scripts `sed` de varias líneas desde un archivo
- Haga coincidir un patrón de varias líneas y reemplácelo con un nuevo texto de varias líneas
- Reemplazar el orden de dos palabras que coincidan con un patrón
- Utilice varios comandos sed desde la línea de comandos
- Combinar sed con otros comandos
- Insertar una línea vacía en un archivo
- Elimina todos los caracteres alfanuméricos de cada línea de un archivo.
- Use ‘&’ para hacer coincidir la cadena
- Cambiar par de palabras
- Ponga en mayúscula el primer carácter de cada palabra
- Imprimir números de línea del archivo
1. Sustitución de texto básica con “sed”
Se puede buscar y reemplazar cualquier parte particular de un texto usando el patrón de búsqueda y reemplazo usando el comando `sed`. En el siguiente ejemplo, ‘s’ indica la tarea de buscar y reemplazar. La palabra “Bash” se buscará en el texto, “Bash Scripting Language” y, si la palabra existe en el texto, será reemplazada por la palabra “Perl”.
Producción:
La palabra ‘Bash’ existe en el texto. Entonces, la salida es ‘Perl Scripting Language’.
El comando `sed` también se puede usar para sustituir cualquier parte del contenido de un archivo. Cree un archivo de texto llamado weekday.txt con el siguiente contenido.
weekday.txt
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
El siguiente comando buscará y reemplazará el texto ‘Domingo’ por el texto ‘El domingo es feriado’.
$ sed ‘s/Sunday/Sunday is holiday/’ weekday.txt
Producción:
‘Sunday’ existe en el archivo weekday.txt y esta palabra se reemplaza por el texto, ‘Sunday is holiday’ después de ejecutar el comando `sed` anterior.
Ve arriba
2. Reemplazar todas las instancias de un texto en una línea particular de un archivo usando la opción ‘g’
La opción ‘g’ se usa en el comando `sed` para reemplazar todas las apariciones de patrones coincidentes. Cree un archivo de texto llamado python.txt con el siguiente contenido para conocer el uso de la opción ‘g’. Este archivo contiene la palabra. ‘Python’ varias veces.
python.txt
Python es un lenguaje muy popular.
Python es fácil de usar. Python es fácil de aprender.
Python es un lenguaje multiplataforma
El siguiente comando reemplazará todas las apariciones de ‘ Python ‘ en la segunda línea del archivo, python.txt . Aquí, ‘Python’ aparece dos veces en la segunda línea.
$ sed ‘2 s/Python/perl/g’ python.txt
Producción:
La siguiente salida aparecerá después de ejecutar el script. Aquí, todas las apariciones de ‘Python’ en la segunda línea se reemplazan por ‘Perl’.
Ve arriba
3. Reemplace la segunda aparición solo de una coincidencia en cada línea
Si alguna palabra aparece varias veces en un archivo, la aparición particular de la palabra en cada línea se puede reemplazar usando el comando `sed` con el número de ocurrencia. El siguiente comando `sed` reemplazará la segunda aparición del patrón de búsqueda en cada línea del archivo, python.txt .
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior. Aquí, el texto de búsqueda, ‘ Python’ aparece dos veces solo en la segunda línea y es reemplazado por el texto, ‘ Perl ‘.
4. Reemplace la última aparición solo de una coincidencia en cada línea
Cree un archivo de texto llamado lang.txt con el siguiente contenido.
lang.txt
Lenguaje de programación Bash. Lenguaje de programación Python. Lenguaje de programación Perl.
Lenguaje de marcado de hipertexto.
Lenguaje de marcado extensible.
Ve arriba
5. Reemplace la primera coincidencia en un archivo con texto nuevo
El siguiente comando reemplazará solo la primera coincidencia del patrón de búsqueda, ‘ Python ‘ por el texto, ‘perl ‘. Aquí, ‘1’ se usa para coincidir con la primera aparición del patrón.
$ sed ‘1 s/Python/perl/’ python.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores. Aquí. la primera aparición de ‘Python’ en la primera línea se reemplaza por ‘perl’.
Ve arriba
6. Reemplace la última coincidencia en un archivo con texto nuevo
El siguiente comando reemplazará la última aparición del patrón de búsqueda, ‘Python ‘ por el texto, ‘Bash’. Aquí, el símbolo ‘$’ se usa para coincidir con la última aparición del patrón.
$ sed -e ‘$s/Python/Bash/’ python.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
7. Escapar de la barra invertida en los comandos de reemplazo para administrar la búsqueda y reemplazo de rutas de archivo
Es necesario escapar de la barra invertida en la ruta del archivo para buscar y reemplazar. El siguiente comando de `sed` agregará una barra invertida (\) en la ruta del archivo.
Producción:
La ruta del archivo, ‘/home/ubuntu/code/perl/add.pl’ se proporciona como entrada en el comando `sed` y la siguiente salida aparecerá después de ejecutar el comando anterior.
Ve arriba
8. Reemplace la ruta completa de todos los archivos con solo el nombre de archivo sin directorio
El nombre del archivo se puede recuperar de la ruta del archivo muy fácilmente usando el comando ` basename` . El comando `sed` también se puede usar para recuperar el nombre de archivo de la ruta del archivo. El siguiente comando recuperará el nombre del archivo solo de la ruta del archivo proporcionada por el comando `echo`.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior. Aquí, el nombre del archivo, ‘ myfile.txt’ se imprime como salida.
Ve arriba
9. Sustituya el texto, pero solo si se encuentra algún otro texto en la cadena.
Cree un archivo llamado ‘ dept.txt’ con el siguiente contenido para reemplazar cualquier texto basado en otro texto.
dept.txt
Lista de estudiantes totales:
EEE – Count
Civil – Count
Se utilizan dos comandos de reemplazo en el siguiente comando `sed`. Aquí, el texto ‘ Count ‘ será reemplazado por 100 en la línea que contiene el texto, ‘CSE ‘ y el texto ‘ Count’ será reemplazado por 70 en la línea que contiene el patrón de búsqueda, ‘ EEE’ .
$ sed -e ‘/CSE/ s/Count/100/ /EEE/ s/Count/70/’ dept.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
10. Sustituya el texto, pero solo si no se encuentra otro texto en la cadena.
El siguiente comando `sed` reemplazará el valor de ‘Count’ en la línea que no contiene el texto, ‘CSE’. El archivo dept.txt contiene dos líneas que no contienen el texto, ‘CSE’. Entonces, el texto ‘ Recuento ‘ será reemplazado por 80 en dos líneas.
$ sed -i -e ‘/CSE/! s/Count/80/’ dept.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
11. Agregue una cadena antes y después del patrón coincidente usando ‘\ 1’
La secuencia de patrones coincidentes del comando `sed` se indica con ‘\ 1’, ‘\ 2’ y así sucesivamente. El siguiente comando `sed` buscará el patrón, ‘Bash’ y si el patrón coincide, se accederá mediante ‘\ 1 ′ en la parte de reemplazo de texto. Aquí, el texto, ‘Bash’ se busca en el texto de entrada y, se agrega un texto antes y se agrega otro texto después de ‘\ 1’.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior. Aquí, el texto ‘ Aprender’ se agrega antes de ‘Bash’ y el texto de ‘ programación ‘ se agrega después de ‘ Bash’.
Ve arriba
12. Eliminar líneas coincidentes
La opción ‘d’ se usa en el comando `sed` para eliminar cualquier línea del archivo. Cree un archivo llamado os.txt y agregue el siguiente contenido para probar la función de la opción ‘d’ .
cat os.txt
Linux
Android
OS
El siguiente comando `sed` eliminará esas líneas del archivo os.txt que contiene el texto, ‘OS’.
$ sed ‘/OS/d’ os.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
13. Elimine la línea coincidente y 2 líneas después de la línea coincidente
El siguiente comando eliminará tres líneas del archivo os.txt si se encuentra el patrón, ‘ Linux’ . os.txt contiene el texto ‘Linux ‘ en la segunda línea. Entonces, esta línea y las siguientes dos líneas serán eliminadas.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.
Ve arriba
14. Elimina todos los espacios al final de la línea de texto.
El uso de la clase [: en blanco:] se puede utilizar para eliminar espacios y tabulaciones del texto o del contenido de cualquier archivo. El siguiente comando eliminará los espacios al final de cada línea del archivo, os.txt.
$ sed ‘s/[[:blank:]]*$//’ os.txt
Producción:
os.txt contiene líneas vacías después de cada línea que son eliminadas por el comando `sed` anterior.
Ve arriba
15. Elimine todas las líneas que tengan una coincidencia dos veces en la línea.
Cree un archivo de texto llamado input.txt con el siguiente contenido y elimine esas líneas del archivo que contiene el patrón de búsqueda dos veces.
input.txt
PHP es un lenguaje de programación del lado del servidor.
PHP es un lenguaje de código abierto y PHP distingue entre mayúsculas y minúsculas.
PHP es independiente de la plataforma.
El texto ‘PHP’ contiene dos tiempos en la segunda línea del archivo, input.txt . En este ejemplo se utilizan dos comandos `sed` para eliminar las líneas que contienen el patrón ‘ php ‘ dos veces. El primer comando `sed` reemplazará la segunda aparición de ‘php’ en cada línea por ‘ dl ‘ y enviará la salida al segundo comando` sed` como entrada. El segundo comando `sed` eliminará las líneas que contienen el texto, ‘ dl ‘.
$ sed ‘s/php/dl/i2t’ input.txt | sed ‘/dl/d’
Producción:
El archivo input.txt tiene dos líneas que contienen el patrón, ‘php’ dos veces. Entonces, la siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
16. Elimina todas las líneas que solo tengan espacios en blanco.
Seleccione cualquier archivo que contenga líneas vacías en el contenido para probar este ejemplo. El archivo input.txt que se creó en el ejemplo anterior, contiene dos líneas vacías que se pueden eliminar usando el siguiente comando `sed`. Aquí, ‘^ $’ se usa para encontrar las líneas vacías en el archivo, input.txt.
$ sed ‘/^$/d’ input.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
17. Elimina todos los caracteres no imprimibles.
Los caracteres no imprimibles se pueden eliminar de cualquier texto reemplazando los caracteres no imprimibles por ninguno. La clase [: print:] se usa en este ejemplo para encontrar los caracteres no imprimibles. ‘\ t’ es un carácter no imprimible y no puede ser analizado directamente por el comando `echo`. Para esto, se asigna el carácter ‘\ t’ en una variable, $ tab que se usa en un comando `echo`. La salida del comando `echo` se envía en el comando` sed` que eliminará el carácter ‘\ t’ de la salida.
$ echo “Hello$tabWorld“
$ echo “Hello$tabWorld“ | sed ‘s/[^[:print:]]//g’
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores. El primer comando `echo imprimirá el resultado con un espacio de tabulación y el comando` sed` imprimirá el resultado después de eliminar el espacio de tabulación.
Ve arriba
18. Si hay una coincidencia en la línea, agregue algo al final de la línea.
El siguiente comando agregará ’10’ al final de la línea que contiene el texto, ‘Windows’ en el archivo os.txt .
$ sed ‘/Windows/ s/$/ 10/’ os.txt
Producción:
La siguiente salida aparecerá después de ejecutar el comando.
Ve arriba
19. Si hay una coincidencia en la línea, inserte una línea antes del texto.
El siguiente comando `sed` buscará el texto, ‘ PHP es independiente de la plataforma’ en el archivo input.txt que se creó antes. Si el archivo contiene este texto en cualquier línea, se insertará ‘ PHP es un lenguaje interpretado’ antes de esa línea.
$ sed ‘/PHP is platform-independent/ s/^/PHP is an interpreted language.\n/’ input.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
20. Si hay una coincidencia en la línea, inserte una línea después de esa línea.
El siguiente comando `sed` buscará el texto, ‘ Linux’ en el archivo os.txt y si el texto existe en cualquier línea, entonces se insertará un nuevo texto, ‘ Ubuntu ‘ después de esa línea.
$ sed ‘s/Linux/&\nUbuntu/’ os.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
21. Si no hay coincidencia, agregue algo al final de la línea.
El siguiente comando `sed` buscará aquellas líneas en os.txt que no contengan el texto, ‘Linux’ y agregará el texto, ‘ Sistema operativo ‘ al final de cada línea. Aquí, el símbolo ‘ $ ‘ se usa para identificar la línea donde se agregará el nuevo texto.
$ sed ‘/Linux/! S/$/ Operating System/’ os.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores. Existen tres líneas en el archivo os.txt que no contienen el texto, ‘Linux’ y el nuevo texto que se agrega al final de estas líneas.
Ve arriba
22. Si no hay coincidencia, elimine la línea.
Cree un archivo llamado web.txt y agregue el siguiente contenido y elimine las líneas que no contienen el patrón coincidente. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery El siguiente comando `sed` buscará y eliminará aquellas líneas que no contienen el texto, ‘CSS’. $ cat web.txt $ sed ‘/ CSS /! d’ web.txt Salida: La siguiente salida aparecerá después de ejecutar los comandos anteriores. Existe una línea en el archivo que contiene el texto, ‘CSE’. Entonces, la salida contiene solo una línea.
Ve arriba
23. Duplique el texto coincidente después de agregar un espacio después del texto
El siguiente comando `sed` buscará la palabra, ‘to’ en el archivo, python.txt y, si la palabra existe, se insertará la misma palabra después de la palabra de búsqueda agregando espacio. Aquí, el símbolo ‘&’ se usa para agregar el texto duplicado.
$ sed -e ‘s/to /& to/g’ python.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos. Aquí, la palabra ‘a’ se busca en el archivo, python.txt y esta palabra existe en la segunda línea de este archivo. Entonces, ‘a ‘ con espacio se agrega después del texto coincidente.
Ve arriba
24. Reemplaza una lista de cadenas con la nueva cadena
Debe crear dos archivos de lista para probar este ejemplo. Cree un archivo de texto llamado list1.txt y agregue el siguiente contenido.
cat list1.txt
1023=> Nir Hossain
1067=> John Michel
Cree un archivo de texto llamado list2.txt y agregue el siguiente contenido.
$ cat list2.txt
1002 CSE GPA-3.24
1023 CSE GPA-3.11
1067 CSE GPA-3.84
El siguiente comando `sed` coincidirá con la primera columna de los dos archivos de texto que se muestran arriba y reemplazará el texto coincidente con el valor de la tercera columna del archivo list1.txt.
$ cat list2.txt
$ sed `cat list1.txt | awk ‘{print “-e s/”$1″/”$3″/”}’`<<<“` cat list2.txt`“
Producción:
1001, 1023 y 1067 del archivo list1.txt coinciden con los tres datos del archivo list2.txt y estos valores se reemplazan por los nombres correspondientes de la tercera columna de list1.txt .
Ve arriba
25. Reemplace la cadena coincidente con una cadena que contenga líneas nuevas
El siguiente comando tomará la entrada del comando `echo` y buscará la palabra ‘Python’ en el texto. Si la palabra existe en el texto , se insertará un nuevo texto, “Texto agregado” con una nueva línea. $ echo “Bash Perl Python Java PHP ASP” | sed ‘s / Python / Texto agregado \ n /’ Salida: La siguiente salida aparecerá después de ejecutar el comando anterior.
Ve arriba
26. Elimine las líneas nuevas del archivo e inserte una coma al final de cada línea.
El siguiente comando `sed` reemplazará cada nueva línea por una coma en el archivo os.txt . Aquí, la opción -z se usa para separar la línea por el carácter NULL.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.
27. Quite las comas y agregue una nueva línea para dividir el texto en varias líneas
El siguiente comando `sed` tomará la línea separada por comas del comando` echo` como entrada y reemplazará la coma por una nueva línea.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior. El texto de entrada contiene tres datos separados por comas que se reemplazan por una nueva línea y se imprimen en tres líneas.
Ve arriba
28. Busque coincidencias que no distingan entre mayúsculas y minúsculas y elimine la línea
‘I’ se usa en el comando `sed` para la coincidencia que no distingue entre mayúsculas y minúsculas que indica ignorar mayúsculas y minúsculas. El siguiente comando `sed` buscará la línea que contiene la palabra ‘linux ‘ y borrará la línea del archivo os.txt .
$ sed ‘/linux/Id’ os.txt
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior. os.txt contiene la palabra ‘Linux’ que coincide con el patrón, ‘linux’ para búsquedas que no distinguen entre mayúsculas y minúsculas y se elimina.
Ve arriba
29. Busque coincidencias que no distingan entre mayúsculas y minúsculas y reemplácelas con texto nuevo
El siguiente comando `sed` tomará la entrada del comando` echo` y reemplazará la palabra ‘bash’ por la palabra ‘PHP’.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior. Aquí, la palabra ‘Bash’ coincidió con la palabra ‘bash’ para una búsqueda que no distingue entre mayúsculas y minúsculas y se reemplazó por la palabra ‘PHP’.
Ve arriba
30. Busque coincidencias que no distingan entre mayúsculas y minúsculas y reemplácelas con mayúsculas del mismo texto
‘\ U’ se usa en ‘sed` para convertir cualquier texto a letras mayúsculas. El siguiente comando `sed` buscará la palabra, ‘linux ‘ en el archivo os.txt y, si la palabra existe, la reemplazará con todas las letras mayúsculas.
$ sed ‘s/\(linux\)/\U\1/Ig’ os.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores. La palabra ‘Linux’ del archivo os.txt se reemplaza por la palabra ‘LINUX’.
Ve arriba
31. Busque coincidencias que no distingan entre mayúsculas y minúsculas y reemplácelas con todas las minúsculas del mismo texto
‘\ L’ se usa en ‘sed` para convertir cualquier texto a letras minúsculas. El siguiente comando `sed` buscará la palabra ‘Linux’ en el archivo os.txt y reemplazará la palabra por letras minúsculas.
$ sed ‘s/\(linux\)/\L\1/Ig’ os.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores. La palabra ‘Linux’ se reemplaza por la palabra ‘linux’ aquí.
Ve arriba
32. Reemplace todos los caracteres en mayúscula del texto por caracteres en minúscula
El siguiente comando `sed` buscará todos los caracteres en mayúsculas en el archivo os.txt y reemplazará los caracteres por letras minúsculas usando ‘\ L’.
$ sed ‘s/\(.*\)/\L\1/’ os.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
33. Busque el número en la línea y agregue cualquier símbolo de moneda antes del número
Cree un archivo llamado items.txt con el siguiente contenido.
items.txt
Monitor 80
Mouse 10
El siguiente comando `sed` buscará el número en cada línea del archivo items.txt y agregará el símbolo de moneda, ‘$’ antes de cada número.
$ sed ‘s/\([0-9]\)/$\1/g’ items.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores. Aquí, el símbolo ‘$’ se agrega antes del número de cada línea.
Ve arriba
34. Agrega comas a los números que tienen más de 3 dígitos.
El siguiente comando `sed` tomará un número como entrada del comando` echo` y agregará una coma después de cada grupo de tres dígitos contando desde la derecha. Aquí, ‘: a’ indica la etiqueta y ‘ta’ se usa para iterar el proceso de agrupación.
Producción:
El número 5098673 se da en el comando `echo` y el comando` sed` generó el número 5,098,673 agregando una coma después de cada grupo de tres dígitos.
Ve arriba
35. Reemplaza el carácter de tabulación con 4 caracteres de espacio.
El siguiente comando `sed` reemplazará cada carácter de tabulación (\ t) por cuatro caracteres de espacio. El símbolo ‘$’ se usa en el comando `sed` para que coincida con el carácter de tabulación y ‘g’ se usa para reemplazar todos los caracteres de tabulación.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.
Ve arriba
36. Reemplaza 4 caracteres de espacio consecutivos con un carácter de tabulación.
El siguiente comando reemplazará 4 caracteres consecutivos con el carácter de tabulación (\ t).
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.
Ve arriba
37. Truncar todas las líneas a los primeros 80 caracteres
Cree un archivo de texto llamado in.txt que contenga las líneas de más de 80 caracteres para probar este ejemplo.
in.txt
PHP es un lenguaje de programación del lado del servidor.
PHP es un lenguaje de código abierto y PHP distingue entre mayúsculas y minúsculas. PHP es independiente de la plataforma.
El siguiente comando `sed` truncará cada línea del archivo in.txt en 80 caracteres.
$ sed ‘s/\(^.\{1,80\}\).*/\1/’ in.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores. La segunda línea del archivo in.txt contiene más de 80 caracteres y esta línea está truncada en la salida.
Ve arriba
38. Busque una expresión regular de cadena y agregue un texto estándar después de ella
El siguiente comando `sed` buscará el texto, ‘ hola ‘ en el texto de entrada y agregará el texto, ‘ John ‘ después de ese texto.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.
Ve arriba
39. Busque una expresión regular de cadena y agregue algo de texto después de la segunda coincidencia en cada línea
El siguiente comando `sed` buscará el texto, ‘ PHP ‘ en cada línea de input.txt y reemplazará la segunda coincidencia en cada línea con el texto, ‘Nuevo texto agregado’ .
$ sed ‘s/\(PHP\)/\1 (New Text added)/2’ input.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores. El texto de búsqueda, ‘ PHP ‘ aparece dos veces en la segunda y tercera línea del archivo input.txt . Entonces, el texto, ‘ Nuevo texto agregado ‘ se inserta en la segunda y tercera líneas.
Ve arriba
40. Ejecución de scripts `sed` de varias líneas desde un archivo
Se pueden almacenar varios scripts `sed` en un archivo y todos los scripts se pueden ejecutar juntos ejecutando el comando` sed`. Cree un archivo llamado ‘sedcmd ‘ y agregue el siguiente contenido. Aquí, se agregan dos scripts `sed` en el archivo. Un script reemplazará el texto, ‘ PHP ‘ por ‘ASP ‘, otro script reemplazará el texto, ‘ independiente ‘ por el texto, ‘ dependiente ‘.
sedcmd
s/independent/dependent/
El siguiente comando `sed` reemplazará todo el texto de ‘PHP’ e ‘independiente’ por ‘ASP’ y ‘dependiente’. Aquí, la opción ‘-f’ se usa en el comando `sed` para ejecutar el script` sed` desde el archivo.
$ sed -f sedcmd input.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
41. Haga coincidir un patrón de varias líneas y reemplácelo con un nuevo texto de varias líneas
El siguiente comando `sed` buscará el texto de varias líneas, ‘Linux \ nAndroid’ y si el patrón coincide, las líneas coincidentes serán reemplazadas por el texto de varias líneas, ‘Ubuntu \ nAndroid Lollipop ‘. Aquí, P y D se utilizan para procesamiento multilínea.
$ sed ‘$!Ns/Linux\nAndoid/Ubuntu\nAndoid Lollipop/PD’ os.txt
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
42. Reemplazar el orden de dos palabras en un texto que coincida con un patrón
El siguiente comando `sed` tomará la entrada de dos palabras del comando` echo` y reemplazará el orden de estas palabras.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.
Ve arriba
43. Ejecute varios comandos `sed` desde la línea de comandos
La opción ‘-e’ se usa en el comando `sed` para ejecutar múltiples scripts` sed` desde la línea de comando. El siguiente comando `sed` tomará un texto como entrada del comando` echo` y reemplaza ‘ Ubuntu ‘ por ‘ Kubuntu ‘ y ‘ Centos ‘ por ‘ Fedora ‘.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior. Aquí, ‘Ubuntu’ y ‘Centos’ se reemplazan por ‘Kubuntu’ y ‘Fedora’.
Ve arriba
44. Combinar `sed` con otros comandos
El siguiente comando combinará el comando `sed` con el comando` cat`. El primer comando `sed` tomará la entrada del archivo os.txt y enviará la salida del comando al segundo comando` sed` después de reemplazar el texto ” Linux ‘por’ Fedora ‘. El segundo comando `sed` reemplazará el texto, ‘Windows’ por ‘Windows 10’.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.
Ve arriba
45. Insertar línea vacía en un archivo
Cree un archivo llamado stdlist con el siguiente contenido.
stdlist
[101] -Ali
[102] -Neha
La opción ‘G’ se usa para insertar una línea vacía en un archivo. El siguiente comando `sed` insertará líneas vacías después de cada línea del archivo stdlist .
$ sed G stdlist
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores. Se inserta una línea vacía después de cada línea del archivo.
Ve arriba
46. Reemplace todos los caracteres alfanuméricos por espacios en cada línea de un archivo.
El siguiente comando reemplazará todos los caracteres alfanuméricos por espacios en el archivo stdlist .
$sed ‘s/[A-Za-z0-9]//g’ stdlist
Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.
Ve arriba
47. Utilice ‘&’ para imprimir una cadena coincidente
El siguiente comando buscará la palabra que comienza con ‘L’ y reemplazará el texto agregando ‘La cadena coincidente es – ‘ con la palabra coincidente usando el símbolo ‘&’. Aquí, ‘p’ se usa para imprimir el texto modificado.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.
Ve arriba
48. Cambiar par de palabras en un archivo
Cree un archivo de texto llamado course.txt con el siguiente contenido que contiene el par de palabras en cada línea.
course.txt
MySQL Oracle
CodeIgniter Laravel
El siguiente comando cambiará el par de palabras en cada línea del archivo, course.txt .
Producción:
La siguiente salida aparecerá después de cambiar el par de palabras en cada línea.
Ve arriba
49. Ponga en mayúscula el primer carácter de cada palabra
El siguiente comando `sed` tomará el texto de entrada del comando` echo` y convertirá el primer carácter de cada palabra en una letra mayúscula.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior. El texto de entrada, “Me gusta la programación bash” se imprime como “Me gusta la programación Bash” después de poner en mayúscula la primera palabra.
Ve arriba
50. Imprime los números de línea del archivo.
El símbolo ‘=’ se usa en el comando `sed` para imprimir el número de línea antes de cada línea de un archivo. El siguiente comando imprimirá el contenido del archivo os.txt con el número de línea.
Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior. Hay cuatro líneas en el archivo os.txt . Entonces, el número de línea se imprime antes de cada línea del archivo.
Ve arriba
Conclusión:
Los diferentes usos del comando `sed` se explican en este tutorial usando ejemplos muy simples. La salida de todos los scripts `sed` mencionados aquí se generan temporalmente y el contenido del archivo original permanece sin cambios. Pero si lo desea, puede modificar el archivo original usando la opción –i o –in-place del comando `sed. Si eres un nuevo usuario de Linux y quieres aprender los usos básicos del comando `sed` para realizar varios tipos de tareas de manipulación de cadenas, este tutorial te ayudará. Después de leer este tutorial, espero que cualquier usuario obtenga un concepto claro sobre las funciones del comando `sed`.