50 ejemplos de comandos `but`

50 Sed Command Examples



`sed` es una característica útil de procesamiento de texto de GNU / Linux. La forma completa de `sed` es Stream Editor. Muchos tipos de tareas de procesamiento de texto simples y complicadas se pueden realizar muy fácilmente usando el comando `sed`. Se puede buscar, reemplazar y eliminar cualquier cadena en particular en un texto o archivo usando una expresión regular con el comando `sed. Pero este comando realiza todo tipo de modificaciones temporalmente y el contenido del archivo original no se cambia de forma predeterminada. El usuario puede almacenar el contenido modificado en otro archivo si es necesario. Los usos básicos del comando `sed` se explican en este tutorial usando 50 ejemplos únicos. 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.

$sed --versión

El siguiente resultado muestra que GNU Sed de la versión 4.4 está instalado en el sistema.









Sintaxis:



sed [opciones][texto] [expediente]

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 :

  1. Sustitución de texto básica usando 'sed'
  2. Reemplazar todas las instancias de un texto en una línea particular de un archivo usando la opción 'g'
  3. Reemplazar la segunda aparición solo de una coincidencia en cada línea
  4. Reemplazar la última aparición solo de una coincidencia en cada línea
  5. Reemplazar la primera coincidencia en un archivo con texto nuevo
  6. Reemplazar la última coincidencia en un archivo con texto nuevo
  7. Escapar de la barra invertida en los comandos de reemplazo para administrar la búsqueda y reemplazo de rutas de archivo
  8. Reemplace la ruta completa de todos los archivos con solo el nombre de archivo sin directorio
  9. Sustituya el texto, pero solo si se encuentra algún otro texto en la cadena
  10. Sustituya el texto, pero solo si no se encuentra otro texto en la cadena
  11. Agregue una cadena antes después del patrón coincidente con ' 1
  12. Eliminar líneas coincidentes
  13. Eliminar la línea coincidente y 2 líneas después de la línea coincidente
  14. Eliminar todos los espacios al final de la línea de texto
  15. Elimine todas las líneas que tengan una coincidencia dos veces en la línea
  16. Eliminar todas las líneas que tienen el único espacio en blanco
  17. Eliminar todos los caracteres no imprimibles
  18. Si hay una coincidencia en la línea, agregue algo al final de la línea.
  19. Si hay una coincidencia en la línea, inserte la línea antes de la coincidencia
  20. Si hay una coincidencia en la línea, inserte una línea después de la coincidencia
  21. Si no hay una coincidencia, agregue algo al final de la línea.
  22. Si no hay coincidencia, elimine la línea.
  23. Duplicar texto coincidente después de agregar un espacio después del texto
  24. Reemplazar una de una lista de cadenas con la nueva cadena
  25. Reemplazar una cadena coincidente con una cadena que contenga líneas nuevas
  26. Elimine las líneas nuevas del archivo e inserte una coma al final de cada línea
  27. Quite las comas y agregue nuevas líneas para dividir el texto en varias líneas
  28. Encuentra coincidencias que no distinguen entre mayúsculas y minúsculas y elimina la línea
  29. Encuentre coincidencias que no distingan entre mayúsculas y minúsculas y reemplácelas con texto nuevo
  30. Encuentre coincidencias que no distingan entre mayúsculas y minúsculas y reemplácelas con todas las mayúsculas del mismo texto
  31. Encuentre coincidencias que no distingan entre mayúsculas y minúsculas y reemplácelas con todas las minúsculas del mismo texto
  32. Reemplazar todos los caracteres en mayúsculas en el texto con caracteres en minúsculas
  33. Busque el número en la línea y agregue el símbolo de moneda después del número
  34. Agregue comas a los números que tienen más de 3 dígitos
  35. Reemplazar los caracteres de tabulación con 4 caracteres de espacio
  36. Reemplazar 4 caracteres de espacio consecutivos con un carácter de tabulación
  37. Truncar todas las líneas a los primeros 80 caracteres
  38. Busque una expresión regular de cadena y agregue un texto estándar después de ella
  39. Busque una expresión regular de cadena y una segunda copia de la cadena encontrada después de ella
  40. Ejecución de scripts `sed` de varias líneas desde un archivo
  41. Haga coincidir un patrón de varias líneas y reemplácelo con un nuevo texto de varias líneas
  42. Reemplazar el orden de dos palabras que coincidan con un patrón
  43. Utilice varios comandos sed desde la línea de comandos
  44. Combinar sed con otros comandos
  45. Insertar una línea vacía en un archivo
  46. Elimina todos los caracteres alfanuméricos de cada línea de un archivo.
  47. Utilice '&' para hacer coincidir la cadena
  48. Cambiar par de palabras
  49. Ponga en mayúscula el primer carácter de cada palabra
  50. 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, en el lenguaje de secuencias de comandos Bash y, si la palabra existe en el texto, se reemplazará por la palabra 'Perl'.



$echo 'Lenguaje de secuencias de comandos Bash' | sed 's / Bash / Perl /'

Producción:

La palabra 'Bash' existe en el texto. Entonces, el resultado es 'Perl Scripting Language'.

El comando `sed` también se puede usar para sustituir cualquier parte del contenido de un archivo. Crea un archivo de texto llamado weekday.txt con el siguiente contenido.

weekday.txt

lunes
martes
miércoles
jueves
viernes
sábado
domingo

El siguiente comando buscará y reemplazará el texto 'Domingo' por el texto 'El domingo es feriado'.

$gatoweekday.txt
$sed 's / Domingo / Domingo es feriado /'weekday.txt

Producción:

'Domingo' existe en el archivo weekday.txt y esta palabra se reemplaza por el texto 'Domingo es feriado' 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. Crea 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. 'Pitón' 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 ' Pitón 'En la segunda línea del archivo, python.txt . Aquí, 'Pitón' ocurre dos veces en la segunda línea.

$ gato pitón.TXT
$ sed'2 s / Python / perl / g'pitón.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 .

$ sed's / Python / perl / g2'pitón.TXT

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior. Aquí, el texto de búsqueda, ' Pitón' aparece dos veces en la segunda línea solamente y se reemplaza por el texto, ' Perl ‘.

Ve arriba

4. Reemplace la última aparición solo de una coincidencia en cada línea

Crea 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.

$sed 's / (. * ) Programación / 1Scripting /'lang.txt

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, ' Pitón 'Por el texto, 'Perl '. Aquí, ‘1’ se utiliza para coincidir con la primera aparición del patrón.

$ gato pitón.TXT
$ sed'1 s / Python / perl /'pitón.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, 'Pitón 'Por el texto, 'Intento'. Aquí, ‘$’ El símbolo se utiliza para coincidir con la última aparición del patrón.

$ gato pitón.TXT
$ pero -e'$ s / Python / Bash /'pitón.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.

$echo /hogar/ubuntu/código/perl/add.pl| sed 's; /; \ /; g'

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 ` nombre de base` mando. 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`.

$echo '/home/ubuntu/temp/myfile.txt' | sed 's/.*///'

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.

Crea un archivo llamado ' dept.txt ' con el siguiente contenido para reemplazar cualquier texto basado en otro texto.

dept.txt

Lista de estudiantes totales:

CSE - Recuento
EEE - Recuento
Civil - Conde

Se utilizan dos comandos de reemplazo en el siguiente comando `sed`. Aquí, el texto ' Contar 'Será reemplazado por 100 en la línea que contiene el texto, 'CSE 'Y el texto' Contar' será reemplazado por 70 en la línea que contiene el patrón de búsqueda, ' EEE ’ .

$gatodept.txt
$sed -Y '/ 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 'Recuento' en la línea que no contiene el texto, 'CSE'. dept.txt El archivo contiene dos líneas que no contienen el texto, 'CSE'. Entonces el ' Contar 'El texto se sustituirá por 80 en dos líneas.

$gatodept.txt
$sed -I -Y '/ 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', etc. 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 otro después de ' 1'.

$echo 'Bash language' | sed 's / (Bash ) / Learn 1 programando /'

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior. Aquí, ' Aprender' el texto se agrega antes 'Intento' y ' programación 'El texto se agrega después de' Intento'.

Ve arriba

12. Eliminar líneas coincidentes

'D' La opción se usa en el comando `sed` para borrar cualquier línea del archivo. Crea un archivo llamado os.txt y agregue el siguiente contenido para probar la función de 'D' opción.

cat os.txt

Ventanas
Linux
Android
USTED

El siguiente comando `sed` borrará esas líneas de os.txt archivo que contiene el texto, 'SO'.

$gatoos.txt
$sed '/El 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 el patrón, ' Linux ’ es encontrado. os.txt contiene el texto, 'Linux 'En la segunda línea. Entonces, esta línea y las siguientes dos líneas serán eliminadas.

$sed '/ Linux /, + 2d'os.txt

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.

Utilizando [:blanco:] La clase 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.

$gatoos.txt
$sed 's / [[: en blanco:]] * $ //'os.txt

Producción:

os.txt contiene líneas vacías después de cada línea que se eliminan mediante el comando `sed` anterior.

Ve arriba

15. Elimine todas las líneas que tengan una coincidencia dos veces en la línea.

Crea un archivo de texto llamado, input.txt con el siguiente contenido y elimine las 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 envíe la salida al segundo comando' sed 'como entrada. El segundo comando 'sed' eliminará las líneas que contienen el texto ' dl ‘.

$gatoinput.txt
$sed 's / php / dl / i2; t'input.txt| sed '/ dl / d'

Producción:

input.txt el archivo 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. input.txt archivo que se creó en el ejemplo anterior, contiene dos líneas vacías que se pueden eliminar mediante el siguiente comando `sed`. Aquí, '^ $' se usa para encontrar las líneas vacías en el archivo, input.txt.

$gatoinput.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 ello, se asigna el carácter ' t' en una variable, $ tabulador que se utiliza 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.

$pestaña=$' t'
$echo 'Hola$ tabWorld'
$echo 'Hola$ 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 os.txt expediente.

$gatoos.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 input.txt archivo que se creó antes. Si el archivo contiene este texto en cualquier línea, ' PHP es un lenguaje interpretado ' se insertará antes de esa línea.

$gatoinput.txt
$sed '/ PHP es independiente de la plataforma / s / ^ / PHP es un lenguaje interpretado. 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 un nuevo texto, ' Ubuntu 'Se insertará después de esa línea.

$gatoos.txt
$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á esas líneas en os.txt que no contiene el texto, 'Linux' y agregue el texto, ' Sistema operativo 'Al final de cada línea. Aquí, ' $ El símbolo ‘se utiliza para identificar la línea donde se agregará el nuevo texto.

$gatoos.txt
$sed '/ Linux /! S / $ / Sistema operativo / '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 contiene el texto, 'Linux' y los nuevos textos que se agregan al final de estas líneas.

Ve arriba

22. Si no hay coincidencia, elimine la línea.

Crea un archivo llamado web.txt y agregue el siguiente contenido y elimine las líneas que no contengan 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 Producción: 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 'a' en el archivo, python.txt y si la palabra existe, la misma palabra se insertará después de la palabra de búsqueda agregando espacio. Aquí, ‘&’ El símbolo se utiliza para agregar el texto duplicado.

$gatopython.txt
$sed -Y '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, 'para '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. Crea un archivo de texto llamado list1.txt y agregue el siguiente contenido.

cat list1.txt

1001=>Jafar Ali
1023=>Nir Hossain
1067=>John Michel

Crea un archivo de texto llamado list2.txt y agregue el siguiente contenido.

$ cat list2.txt

1001GPA de CSE3.63
1002GPA de CSE3.24
1023GPA de CSE3.11
1067GPA de CSE3.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.

$gatolist1.txt
$gatolist2.txt
$sed `gatolist1.txt| awk '{print' -e con / '$ 1' / '$ 3' / '}'`<<<'`cat list2.txt`'

Producción:

1001, 1023 y 1067 de list1.txt coincidencia de archivo con los tres datos de list2.txt archivo 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, 'Pitón' en el texto. Si la palabra existe en el texto, entonces un nuevo texto, 'Texto agregado' se insertará con nueva línea. $ echo Bash Perl Python Java PHP ASP | sed 's / Python / Texto añadido n /' Producción: 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í, -Con La opción se utiliza para separar la línea por el carácter NULL.

$sed -Con 's / n /, / g'os.txt

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior.

Ve arriba

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.

$echo 'Kaniz Fatema, 30, lote' | sed 's/,/ orte/gramo'

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 borre la línea de os.txt expediente.

$gatoos.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'.

$echo 'Me gusta la programación bash' | sed 's / Bash / PHP / i'

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior. Aquí, la palabra 'Bash' coincide con la palabra 'bash' para la búsqueda que no distingue entre mayúsculas y minúsculas y se reemplaza por la palabra 'PHP'.

Ve arriba

30. Busque coincidencias que no distingan entre mayúsculas y minúsculas y reemplácelas con todas las mayúsculas del mismo texto

' U' se utiliza en `sed` para convertir cualquier texto a letras mayúsculas. El siguiente comando `sed` buscará la palabra, 'Linux ' en el os.txt archivo y si la palabra existe, reemplazará la palabra con todas las letras mayúsculas.

$gatoos.txt
$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

'LOS' se utiliza en `sed` para convertir cualquier texto a minúsculas. El siguiente comando `sed` buscará la palabra, 'Linux' en el os.txt archivo y reemplace la palabra por todas las letras minúsculas.

$gatoos.txt
$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 os.txt archivo y reemplace los caracteres por letras minúsculas usando ' L'.

$gatoos.txt
$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

Crea un archivo llamado items.txt con el siguiente contenido.

items.txt

HDD 100
Monitor 80
Ratón 10

El siguiente comando `sed` buscará el número en cada línea de items.txt archivar y agregar el símbolo de moneda, '$' antes de cada número.

$gatoitems.txt
$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. Agregue 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 utiliza para iterar el proceso de agrupación.

$echo '5098673' | sed -Y:a-Y 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'

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.

$echo -Y '1 t2 t3' | sed$'s / t / / g'

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).

$echo -Y '1 2' | sed$'s / / t / g'

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

Crea un archivo de texto llamado in.txt que contiene 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 de in.txt archivo en 80 caracteres.

$gatoin.txt
$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 anexar el texto,' John 'Después de ese texto.

$echo '¿Hola como estas?' | sed 's / (hola ) / 1 John /'

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 reemplace la segunda coincidencia en cada línea con el texto, 'Nuevo texto agregado' .

$gatoinput.txt
$sed 's / (PHP ) / 1 (Nuevo texto agregado) / 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íneas de input.txt expediente. 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`. Crea un archivo llamado 'Sedcmd 'Y agregue el siguiente contenido. Aquí, se agregan dos scripts `sed` en el archivo. Una secuencia de comandos reemplazará el texto ' PHP ' por 'ÁSPID 'Otra secuencia de comandos reemplazará el texto', independiente 'Por el texto', dependiente ‘.

sedcmd

s/PHP/ÁSPID/
s/independiente/dependiente/

El siguiente comando 'sed' reemplazará todo el texto '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.

$gatosedcmd
$sed -Fsedcmd 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.

$gatoos.txt
$sed '$! N; s / Linux nAndoid / Ubuntu nAndoid Lollipop /; P; D'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.

$echo 'perl python' | sed -Y 's / ([^] * ) * ([^] * ) / 2 1 /'

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 utiliza en el comando 'sed' para ejecutar varios scripts 'sed' desde la línea de comandos. El siguiente comando `sed` tomará un texto como entrada del comando` echo` y reemplaza a ' Ubuntu ' por ' Kubuntu ' y ' cientos ' por ' Fedora ‘.

$echo 'Ubuntu Centos Debian' | sed -Y 's / Ubuntu / Kubuntu /; s / Centos / 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 de os.txt y envíe 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'.

$gatoos.txt| sed 's / Linux / Fedora /'| sed 's / windows / Windows 10 / i'

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior.

Ve arriba

45. Insertar línea vacía en un archivo

Crea un archivo llamado stdlist con el siguiente contenido.

stdlist

#ID #Nombre
[101] -Pero
[102] -Neha

La opción 'G' se utiliza 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 de stdlist expediente.

$gatostdlist
$sedG 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 espacio en el stdlist expediente.

$gatostdlist
$ pero '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 mediante el símbolo' & '. Aquí, 'p' se utiliza para imprimir el texto modificado.

$sed -norte 's / ^ L / La cadena coincidente es - & / p'os.txt

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior.

Ve arriba

48. Cambiar par de palabras en un archivo

Crea un archivo de texto llamado course.txt con el siguiente contenido que contiene el par de palabras en cada línea.

course.txt

PHP ASP
MySQL Oracle
CodeIgniter Laravel

El siguiente comando cambiará el par de palabras en cada línea del archivo, course.txt .

$sed 's / ([^] * ) * ([^] * ) / 2 1 /'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.

$echo 'Me gusta la programación bash' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'

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 I Like Bash Programming después de poner en mayúscula la primera palabra.

Ve arriba

50. Imprimir 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 de os.txt archivo con número de línea.

$sed '='os.txt

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior. Hay cuatro líneas en os.txt expediente. 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`.

Preguntas frecuentes

¿Para qué se utiliza el comando sed?

El comando sed tiene varios usos diferentes. Dicho esto, el uso principal es para sustituir palabras en un archivo o para buscar y reemplazar.

Lo mejor de sed es que puede buscar una palabra en un archivo y reemplazarla, pero ni siquiera tiene que abrir el archivo, ¡sed lo hace todo por usted!

Además de esto, se puede utilizar para borrar. Todo lo que necesita hacer es escribir la palabra que desea buscar, reemplazar o eliminar en sed, y se la mostrará; luego puede elegir reemplazar esa palabra o eliminar todos los rastros de la palabra de su archivo.

sed es una herramienta fantástica para poder reemplazar cosas como direcciones IP y cualquier cosa que sea altamente sensible que de otra manera no querrías poner en un archivo. ¡sed es una herramienta imprescindible para cualquier ingeniero de software!

¿Qué es S y G en el comando sed?

En sus términos más simples, la función S que se puede usar en sed simplemente significa 'sustituto'. Después de escribir la S, puede reemplazar o sustituir lo que desee; solo escribir S solo reemplazará la primera aparición de la palabra en una línea.

Por lo tanto, si tiene una oración o línea que la menciona más de una vez, la función S no es ideal ya que solo sustituirá la primera aparición. También puede especificar un patrón para que S reemplace palabras cada dos apariciones.

Especificar G al final del comando sed hará un reemplazo global (eso es lo que significa G). Teniendo esto en cuenta, si especifica G, reemplazará cada aparición de la palabra que ha elegido, en lugar de solo la primera aparición que hace la S.

¿Cómo ejecuto un script sed?

Puede ejecutar un script sed de varias formas, pero la más común es en la línea de comandos. Aquí puede especificar sed y el archivo en el que desea usar el comando.

Esto le permite usar sed en ese archivo, lo que le permite buscar, eliminar y sustituir según sea necesario.

También puede usarlo en un script de shell, y de esta manera puede pasar lo que quiera al script, y ejecutará el comando buscar y reemplazar por usted. Esto es útil para no querer especificar datos altamente confidenciales dentro de un script, por lo que en su lugar, puede pasarlos como una variable

Tenga en cuenta que esto, por supuesto, solo está disponible en Linux, por lo que deberá asegurarse de tener una línea de comandos de Linux para ejecutar su script sed.