Espacio modo sed y espacio reservado

  
 

El editor sed procesa el archivo línea por línea e imprime el resultado en la pantalla. El comando sed lee la línea procesada actualmente en el espacio del patrón, y sed imprime la línea procesada en la pantalla después de ejecutar todos los comandos en la línea (a menos que el comando anterior elimine la línea), sed Después de procesar una línea, se elimina del espacio del patrón, y luego la siguiente línea se lee en el espacio del patrón para procesar y mostrar. La última línea de los archivos procesados, sed se terminó con la racha. Sed procesa el archivo en un búfer temporal (espacio de modo), por lo que el archivo original no se modificará a menos que se indique la opción -i.

Comandos relacionados con el espacio de modo y el espacio de espera:

n Líneas de espacio de modo de salida, lea la siguiente línea para reemplazar el espacio de modo actual, ejecute el siguiente comando de procesamiento en lugar de El primer comando.

N Lee la siguiente línea y agrégala a la línea del espacio del patrón. Hay dos líneas en el espacio del patrón.

h Copie las líneas en el espacio del patrón al espacio reservado.

H Agregar líneas desde el espacio del patrón al espacio reservado.

g Reemplace las filas del espacio del patrón con el contenido del espacio reservado.

G Anexa el contenido del espacio reservado a la línea en el espacio del patrón.

x Intercambia el contenido del espacio reservado con la línea actual en el espacio del patrón.

! Todas las líneas excepto el comando aplicación fila seleccionada.

Nota: una línea en blanco se almacena por defecto en el espacio reservado.

Los siguientes son algunos ejemplos:

archivo de datos cat

111111111111 aaa

222222222222 bbb

333333333333 ccc

444444444444 Ddd

555555555555 eee

666666666666 fff

Agregue una línea en blanco después de cada línea:

sed ‘ G ’ datafile

111111111111 Aaa

222222222222 bbb

333333333333 ccc

444444444444 ddd

555555555555 eee

666666666666 fff

aaa line Lea en el espacio del patrón, ejecute G, agregue una línea en blanco después de esta línea y luego imprima el espacio del patrón, las otras líneas son las mismas.

Agregue una línea en blanco después de la línea correspondiente:

sed ‘ /ccc /G ’ archivo de datos

111111111111 aaa

222222222222 bbb

333333333333 ccc

444444444444 ddd

555555555555 eee

666666666666 fff

Agregue una línea en blanco antes de la línea correspondiente:

sed ‘ /ccc /{x; p; x;} ’ datafile

111111111111 aaa

222222222222 bbb

333333333333 ccc

444444444444 ddd

555555555555 eee

666666666666 fff

Cambios en el espacio reservado y en el espacio de modo antes y después de la ejecución del comando:

Los comandos reservan el espacio del modo de espacio

x Antes: nulo Después de la ejecución: ccc \\ n Antes de la ejecución: ccc \\ n Después de la ejecución: nulo

p Antes de la ejecución: nulo Después de la ejecución: ccc \\ n Antes de la ejecución: ccc \\ n Después de la ejecución: nulo Muestra una línea en blanco

x Antes de la ejecución: ccc \\ n Después de la ejecución: nulo Antes de la ejecución: nulo Después de la ejecución: ccc \\ n Salida de ccc donde línea

(Nota: escriba ccc línea como ccc)

Eliminar líneas pares:

sed ‘ {n; d;} ’ archivo de datos

111111111111 aaa

333333333333 ccc

555555555555 eee

Después de ejecutar n La primera fila, la segunda fila se lee y luego ejecuta el comando d, es decir, eliminar esta línea; n y luego realizar la impresión de la tercera fila, la cuarta fila se lee y luego ejecuta el comando d, y así sucesivamente.

Agregue una nueva línea después de la línea par:

sed ‘ {n; G;} ’ archivo de datos

111111111111 aaa

222222222222 bbb < Br>

333333333333 ccc

444444444444 ddd

555555555555 eee

666666666666 fff

Después de ejecutar n, la primera línea sale a la salida estándar, Luego, la segunda línea ingresa al espacio del patrón. De acuerdo con la explicación anterior de G, se inserta una línea en blanco después de la segunda línea y luego se emite, luego se ejecuta n para enviar la tercera línea a la salida estándar, y luego la cuarta línea ingresa al espacio del patrón. E inserte una línea en blanco, y así sucesivamente.

Correspondiente: sed ‘ {n; n; G;} ’ datafile significa insertar una línea en blanco después de la línea 3, 6, 9, 12, ….

Líneas pares vacías:

sed ‘ {n; g;} ’ archivo de datos

111111111111 aaa

333333333333 ccc

555555555555 eee

Imprima la primera línea después de ejecutar n, luego lea la segunda línea para ejecutar el comando g. El comando g reemplaza el espacio del modo actual con el contenido del espacio reservado (nulo), es decir, la segunda línea está en blanco. . Otras líneas y así sucesivamente.

Combine líneas pares con la línea anterior:

sed ‘ {N; s /\\ n /\\ t /;} ’ archivo de datos

111111111111 aaa 222222222222 bbb

333333333333 ccc 444444444444 ddd

555555555555 eee 666666666666 fff

Ejecutar N, agregue la segunda línea a la primera línea del espacio del patrón, luego el espacio del patrón usa dos líneas, luego Realice un reemplazo (s) para reemplazar la primera nueva línea con una pestaña. Otras líneas y así sucesivamente.

Agregue un número de línea, aproximadamente equivalente a cat -n datafile:

sed = datafile

1

111111111111 aaa

2 < Br>

222222222222 bbb

3

333333333333 ccc

4

444444444444 ddd

5

555555555555 eee

6

666666666666 fff

sed = datafile

Copyright © Conocimiento de Windows All Rights Reserved