¿Qué es la opción P en sed?

En UNIX/Linux, el comando sed (editor de secuencias) analiza y transforma textos con la ayuda de expresiones regulares. Es una de las primeras herramientas en admitir expresiones regulares. Hoy en día, sed es parte de la especificación UNIX, por lo que está disponible en todos los sistemas UNIX/Linux modernos de forma predeterminada.

Si bien existen numerosas formas de usar sed , veremos la opción P (con ejemplos) en esta guía.

Uso básico de sed

Esta sección ofrecerá un repaso rápido de los usos básicos del comando sed .

La estructura de comando de sed es la siguiente:

$ sed < opciones > < regex_pattern > < flujo >

En la mayoría de los casos, sed se usa para su función de sustitución. Echa un vistazo al siguiente ejemplo:

$ echo «el rápido zorro marrón» | sed -e ‘s/rápido/RÁPIDO/’

Aquí, el comando sed está operando en el contenido de STDOUT desde el comando echo . Obtenga más información sobre STDIN, STDERR y STDOUT en Linux. En el resultado, el término «rápido» se reemplaza por «RÁPIDO».

Si quisiéramos realizar esta operación en un archivo de texto, entonces el comando se vería así:

$ sed -e ‘s/rápido/RÁPIDO/g’ sed-demo.txt

Tenga en cuenta que el contenido original del archivo no se modificó. Para modificar el contenido del archivo en el lugar, debemos agregar el indicador «-i». Echa un vistazo al siguiente comando:

$ cat sed-demo.txt
$ sed -i -e ‘s/rápido/RÁPIDO/g’ sed-demo.txt
$ cat sed-demo.txt

Tenga en cuenta que también tuvimos que agregar la opción g en la expresión para que sed busque coincidencias de patrones en todo el flujo y realice la tarea especificada.

La opción P en sed

Para modificar cómo sed maneja varios flujos, hay numerosas opciones disponibles. Exploramos el uso de la opción g en el contexto de la característica de sustitución de sed . La opción P , sin embargo, se usa para buscar un patrón solamente.

Observe que es una P mayúscula. La p minúscula especifica otra opción en sed . Todas estas opciones deben utilizarse dentro de la especificación del patrón.

  • p: sed imprimirá todo el contenido en el espacio del patrón actual.
  • P: sed imprimirá solo la primera línea de datos en el espacio de patrón actual.

¿Recuerda cómo sed imprime la salida de la modificación de flujo en la consola de forma predeterminada? Con la ayuda de las opciones p y P , podemos controlar qué contenido se imprimirá en la consola.

Por ejemplo, para imprimir solo la primera línea, podríamos usar la siguiente técnica:

eco «línea 1

esta es la línea 2” | sed-n ‘1p’

Esto también podría lograrse usando la opción p :

eco «línea 1

esta es la línea 2” | sed -n ‘1P’

Sin embargo, podemos notar la diferencia en sus comportamientos si incluimos 2 líneas en el búfer e imprimimos ambas:

eco «línea 1

esta es la línea 2” | sed -n ‘1{N; PAG}’

Aquí, había dos líneas en el búfer, pero solo imprimimos la primera porque estamos usando la opción P.

Conclusión

En esta guía, exploramos la opción P en sed y exploramos un par de formas de implementarla. Esta es solo una de las muchas formas de usar sed . Esta guía demuestra la realización de varios reemplazos de sed . El poder de sed se origina en su implementación de expresiones regulares. Obtén más información sobre las expresiones regulares en sed .

Si bien sed puede encontrar flujos de texto de edición, si solo necesita buscar un patrón específico, entonces grep es la opción óptima. Además de su uso básico , el comando grep admite funciones avanzadas como la exclusión de ciertos elementos , múltiples patrones de cadenas y más. Mejore su dominio del comando grep con 30 ejemplos de grep .

¡Feliz computación!