Comandos sed de uso común de Linux

Tabla de contenido

1. Gramática

1.1 Opciones comunes

1.2 Comandos comunes

1.3 Principio de mando

2. Ejemplos

2.1 Contenido nuevo --- Comando a

2.2 Reemplazar contenido --- comando c

2.3 Eliminar contenido --- eliminar la línea especificada

2.4 Insertar contenido --- comando i

2.5 Reemplazar contenido --- Comando s

Tres, resumen


El comando sed de Linux usa scripts para procesar archivos de texto línea por línea. Es un comando que se usa a menudo en el procesamiento de scripts. Junto con awk y grep, se le llama los Tres Mosqueteros de Linux. A continuación se describirán con ejemplos.

1. Gramática

sed [opciones] [comando de script] [archivo] ...

1.1 Opciones comunes

-e script, --expression = script: procesa el contenido de entrada con el script especificado en la opción;

-f archivo-script, --file = archivo-script: procesa el contenido de entrada con el archivo-script especificado en la opción;

1.2 Comandos comunes

a : Nuevo contenido, agregue texto de contenido en la línea especificada;

c : reemplazar el contenido, usar texto para reemplazar el contenido de la línea especificada;

d  : eliminar el contenido, eliminar la línea especificada;

i : insertar contenido, insertar texto en la línea especificada;

s : Reemplazar contenido, puede reemplazar el contenido especificado;

Ejemplo: las primeras 15 líneas del archivo / etc / passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

1.3 Principio de mando

Sed procesa los datos de entrada fila por fila, procesando una fila cada vez, que se puede dividir en tres pasos:

1. Almacene una copia de la línea procesada actualmente en un búfer temporal (llamado "espacio de modo");

2. Procesar los datos en el búfer actual a través del comando sed;

3. Una vez procesados ​​los datos, los datos se envían al terminal de forma predeterminada, y luego se procesa la siguiente línea y se han procesado todos los datos.

Los datos de origen no se modifican de forma predeterminada.

2. Ejemplos

2.1 Contenido nuevo --- Comando a

 sed '4a además algo de texto' passwd

[root@localhost ~]# sed '4a addition some text' passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
addition some text
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

En el ejemplo anterior, 4a significa insertar contenido después de la cuarta línea, el siguiente texto es el contenido de entrada y passwd es el archivo de entrada. 

2.2 Reemplazar contenido --- comando c

sed '2c adición de texto' passwd

[root@localhost ~]# sed '2c addition some text' passwd
root:x:0:0:root:/root:/bin/bash
addition some text
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

En el ejemplo anterior, 2c significa reemplazar el contenido de la segunda línea, y el siguiente contenido es el contenido a reemplazar. 

2.3 Eliminar contenido --- eliminar la línea especificada

sed '2d' passwd

[root@localhost ~]# sed '2d' passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

 sed '2,5d' passwd

[root@localhost ~]# sed '2,5d' passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

 sed '/ ^ bin / d' passwd

[root@localhost ~]# sed '/^bin/d' passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

En los tres ejemplos anteriores, puede eliminar especificando una fila, o especificando un intervalo, o especificando contenido específico para su eliminación. 

2.4 Insertar contenido --- comando i

sed '1i adición de texto' passwd

[root@localhost ~]# sed '1i addition some text' passwd
addition some text
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#

El contenido insertado es diferente del contenido recién agregado. La inserción se inserta antes de la fila especificada y el contenido recién agregado se inserta después de la fila especificada. 

2.5 Reemplazar contenido --- Comando s

sed 's / root / ROOT / g' passwd

[root@localhost ~]# sed 's/root/ROOT/g' passwd
ROOT:x:0:0:ROOT:/ROOT:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/ROOT:/sbin/nologin
[root@localhost ~]#

En los ejemplos anteriores, el contenido especificado se puede reemplazar por comandos, al igual que el reemplazo en vim. 

Tres, resumen

Lo anterior es solo una lista de usos comunes de sed en forma de ejemplos, hay contenido cada vez más profundo y lo presentaré cuando tenga tiempo.

 

Supongo que te gusta

Origin blog.csdn.net/u011074149/article/details/110296542
Recomendado
Clasificación