Herramientas de usuario

Herramientas del sitio


comandos:sed

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
comandos:sed [2025/01/07 01:42]
truper creado
comandos:sed [2025/01/14 16:33] (actual)
truper
Línea 1: Línea 1:
-El espacio de patrón y de retención, muy difícil de comprender sin explicarlo muy bien+**El espacio de patrón y de retención, muy difícil de comprender sin explicarlo muy bien**
  
  
  
-sed@command:​~$ cat lineas.txt+sed@command:​~$ cat lineas.txt ​\\
  
-una +una \\ 
-dos +dos \\ 
-tres +tres \\ 
-cuatro +cuatro ​\\ 
-cinco +cinco \\ 
-seis +seis \\ 
-siete +siete \\ 
-ocho +ocho \\ 
-nueve +nueve \\ 
-diez+diez \\
 sed@command:​~$ sed@command:​~$
  
-sed@command:​~$ cat lineas2.txt (tiene un espacio al final de la última línea) +sed@command:​~$ cat lineas2.txt (tiene un espacio al final de la última línea) ​\\ 
-una +una \\ 
-dos +dos \\ 
-tres +tres \\ 
-cuatro +cuatro ​\\ 
-cinco +cinco \\ 
-seis +seis \\ 
-siete +siete \\ 
-ocho +ocho \\ 
-nueve +nueve \\ 
-diez+diez \\
  
-sed@command:​~$+sed@command:​~$ ​\\
  
-sed@command:​~$ cat lineas.txt | sed '/​./​{H;​d};​x;'​ (como la condición /./ siempre se cumple nunca llega a ejecutar x y por eso no imprime nada +sed@command:​~$ cat lineas.txt | sed '/​./​{H;​d};​x;'​ (como la condición /./ siempre se cumple nunca llega a ejecutar x y por eso no imprime nada \\ 
-sed@command:​~$ +sed@command:​~$ ​\\ 
-sed@command:​~$ cat lineas2.txt | sed '/​./​{H;​d};​x;'​ (como el archivo al final contiene una línea en blanco /./ deja de cumplirse, pasa a la instrucción x y por eso imprime+sed@command:​~$ cat lineas2.txt | sed '/​./​{H;​d};​x;'​ (como el archivo al final contiene una línea en blanco /./ deja de cumplirse, pasa a la instrucción x y por eso imprime) \\
  
-una +una \\ 
-dos +dos \\ 
-tres +tres \\ 
-cuatro +cuatro ​\\ 
-cinco +cinco \\ 
-seis +seis \\ 
-siete +siete \\ 
-ocho +ocho \\ 
-nueve +nueve \\ 
-diez +diez \\ 
-sed@command:​~$+sed@command:​~$ ​\\
  
-El comando podría leerse algo así, if /./ { do{H;​d}while(no linea en blanco);x }+El comando podría leerse algo así, if /./ { do{H;​d}while(no linea en blanco);x } \\
  
-Mientras la línea contiene algo ejecuta {H;d} (añade la línea del espacio de patron al de retención y la borra del espacio de patrón), y cuando no (la línea ultima en blanco) ejecuta x (intercambia las líneas almacenadas en el espacio de retención a patrón) y por eso las imprime todas+Mientras la línea contiene algo ejecuta {H;d} (añade la línea del espacio de patron al de retención y la borra del espacio de patrón), y cuando no (la línea ultima en blanco) ejecuta x (intercambia las líneas almacenadas en el espacio de retención a patrón) y por eso las imprime todas \\
  
  
-**Etiquetas condicionales** +**Etiquetas condicionales** ​\\ 
-si la línea coincide con el patron cuatro salta a la etiqueta z y sólo sustituye u por chu, sino sustituye u por mu y luego u por chu+si la línea coincide con el patron cuatro salta a la etiqueta z y sólo sustituye u por chu, sino sustituye u por mu y luego u por chu \\
  
-sed@command:​~$ sed '/​cuatro/​bz;​s/​u/​mu/;:​z;​s/​u/​chu/'​ lineas.txt +sed@command:​~$ sed '/​cuatro/​bz;​s/​u/​mu/;:​z;​s/​u/​chu/'​ lineas.txt ​\\ 
-mchuna +mchuna ​\\ 
-dos +dos \\ 
-tres +tres \\ 
-cchuatro +cchuatro ​\\ 
-cinco +cinco \\ 
-seis +seis \\ 
-siete +siete \\ 
-ocho +ocho \\ 
-nmchueve +nmchueve ​\\ 
-diez +diez \\ 
-sed@command:​~$+sed@command:​~$ ​\\
  
-**Condicionales fáciles** +**Condicionales fáciles** ​\\ 
--nE (imprime sólo lo que coincide y habilita el uso de expresiones regulares sin tener que escapar los caracteres con \)+-nE (imprime sólo lo que coincide y habilita el uso de expresiones regulares sin tener que escapar los caracteres con \) \\
  
  
-sed@command:​~$ sed -nE '/​^.{4}$/​p'​ lineas.txt (líneas que sólo tengan 4 caracteres) +sed@command:​~$ sed -nE '/​^.{4}$/​p'​ lineas.txt (líneas que sólo tengan 4 caracteres) ​\\ 
-tres +tres \\ 
-seis +seis \\ 
-ocho +ocho \\ 
-diez +diez \\ 
-sed@command:​~$ sed -nE '/​^.{4}$/​{n;​p}'​ lineas.txt (n salta a la siguiente línea y p imprime) +sed@command:​~$ sed -nE '/​^.{4}$/​{n;​p}'​ lineas.txt (n salta a la siguiente línea y p imprime) ​\\ 
-cuatro +cuatro ​\\ 
-siete +siete \\ 
-nueve +nueve \\ 
-once once +once once \\ 
-sed@command:​~$ sed -nE '/​^.{4}$/​{n;​n;​p}'​ lineas.txt (salta 2 líneas e imprime) +sed@command:​~$ sed -nE '/​^.{4}$/​{n;​n;​p}'​ lineas.txt (salta 2 líneas e imprime) ​\\ 
-cinco +cinco \\ 
-ocho+ocho \\
 sed@command:​~$ ​ sed@command:​~$ ​
comandos/sed.1736210544.txt.gz · Última modificación: 2025/01/07 01:42 por truper