tutorial_de_sed

Diferencias

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

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
Próxima revisiónAmbos lados, revisión siguiente
tutorial_de_sed [2021/08/22 19:22] perontutorial_de_sed [2022/07/08 22:50] – [Guardar los Cambios] peron
Línea 84: Línea 84:
 Normalmente no se conoce con precisión dónde se localiza exactamente un texto buscado, lo que implica que suele ser imposible proveer los números de línea. Sin embargo, podrás usar sed para seleccionar las líneas que contienen la cadena de texto que buscas. Por ejemplo, prueba extraer todas las líneas que comienzan con "Y". Normalmente no se conoce con precisión dónde se localiza exactamente un texto buscado, lo que implica que suele ser imposible proveer los números de línea. Sin embargo, podrás usar sed para seleccionar las líneas que contienen la cadena de texto que buscas. Por ejemplo, prueba extraer todas las líneas que comienzan con "Y".
  
-El caret (^) representa el comienzo de una línea. Deliminta tu término a buscar en barras (/). También incluirás un espacio luego de "Y", de manera tal que las palabras como "Yo" no aparecerán en el resultado.+El circunflejo (^) representa el comienzo de una línea. Deliminta tu término a buscar en barras (/). También incluirás un espacio luego de "Y", de manera tal que las palabras como "Yo" no aparecerán en el resultado.
  
 Al leer por primera ver guiones que incluyen sed, no suele resultar obvio. Recordemos que en los comandos anteriores expliqué que /p significa "presentar", o bien "imprimir". Sin embargo, ahora una barra la antecede, de esta manera: Al leer por primera ver guiones que incluyen sed, no suele resultar obvio. Recordemos que en los comandos anteriores expliqué que /p significa "presentar", o bien "imprimir". Sin embargo, ahora una barra la antecede, de esta manera:
Línea 208: Línea 208:
   *     sed 's/: El comando sed y el comienzo de la expresión de sustitución.   *     sed 's/: El comando sed y el comienzo de la expresión de sustitución.
   *     \(: El paréntesis abierto [(] precedido por una barra invertida(\) abre una subexpresión.   *     \(: El paréntesis abierto [(] precedido por una barra invertida(\) abre una subexpresión.
-  *     [^:]*: La primer subexpresión de la cadena de búsqueda contiene un grupo en corchetes. Cuando se lo usa en un grupo, el caret (^) significa “no”. Un grupo significa que cualquier caracter que no sea dos puntos (:) será aceptado como una coincidencia.+  *     [^:]*: La primer subexpresión de la cadena de búsqueda contiene un grupo en corchetes. Cuando se lo usa en un grupo, el circunflejo (^) significa “no”. Un grupo significa que cualquier carácter que no sea dos puntos (:) será aceptado como una coincidencia.
   *     \): El paréntesis cerrado [)] precedido por una barra invertida (\).   *     \): El paréntesis cerrado [)] precedido por una barra invertida (\).
   *     .*: Esta segunda subexpresión de búsqueda significa "cualquier caracter y cualquier cantidad de ellos".   *     .*: Esta segunda subexpresión de búsqueda significa "cualquier caracter y cualquier cantidad de ellos".
Línea 257: Línea 257:
  
   *     sed 's/: El comando de sustitución normal.   *     sed 's/: El comando de sustitución normal.
-  *     ^: Como el caret no está en un grupo ([]), se interpreta como "el comienzo de la línea".+  *     ^: Como el circunflejo no está en un grupo ([]), se interpreta como "el comienzo de la línea".
   *     \(.*\),: La primera subexpresiñon es cualquier cantidad de cualquier caracter. Está entre paŕentesis "()", cada una de las cuales está precedida por una barra invertida "\", de modo que se referenciará por un número. El comando se interpretará como "buscar desde el comienzo de la línea hasta la primer coma "," cualquier cantidad de cualquier caracter."   *     \(.*\),: La primera subexpresiñon es cualquier cantidad de cualquier caracter. Está entre paŕentesis "()", cada una de las cuales está precedida por una barra invertida "\", de modo que se referenciará por un número. El comando se interpretará como "buscar desde el comienzo de la línea hasta la primer coma "," cualquier cantidad de cualquier caracter."
   *     \(.*\): La siguiente subexpresión es -nuevamente- cualquier cantidad de cualquier caracter. También está entre paréntesis, "()" ambos de los cuales se hayan precedidos por una barra invertida "\", de modo que podemos referenciar nuevamente el texto coincidente por número.   *     \(.*\): La siguiente subexpresión es -nuevamente- cualquier cantidad de cualquier caracter. También está entre paréntesis, "()" ambos de los cuales se hayan precedidos por una barra invertida "\", de modo que podemos referenciar nuevamente el texto coincidente por número.
Línea 343: Línea 343:
 Es una buena política instruir a sed para que cree una copia de respaldo del fichero original antes de ejecutar cualquier comando. Es una buena política instruir a sed para que cree una copia de respaldo del fichero original antes de ejecutar cualquier comando.
  
-Puedes usar la opción En el Lugar (-i) para indicar a sed que escriba los cambios al fichero original, pero si le agregas una extensión de archivo, sed procederá a respaldar el fichero original con dicha extensión. Tendrá el mismo nombre que el fichero original, pero con una nueva extensión.+Puedes usar la opción En el Lugar (**-i**) para indicar a sed que escriba los cambios al fichero original, pero si le agregas una extensión de archivo, sed procederá a respaldar el fichero original con dicha extensión. Tendrá el mismo nombre que el fichero original, pero con una nueva extensión.
  
-Para demostrarlo, busca cualquier línea que contiene la palabra "He" y bórrala. También respaldaremos nuestro fichero original a uno nuevo aplicándole la extensión .BAK.+Para demostrarlo, busca cualquier línea que contiene la palabra "He" y bórrala. También respaldaremos nuestro fichero original a uno nuevo aplicándole la extensión ''.bak''.
  
 Para hacerlo así, ingresa lo siguiente: Para hacerlo así, ingresa lo siguiente:
  • tutorial_de_sed.txt
  • Última modificación: 2022/07/08 23:04
  • por peron