Aprenda un pequeño caparazón todos los días: comando Linux Three Musketeers-sed

uso de sed

El uso es el siguiente:

sed [选项]... {
    
    脚本(如果没有其他脚本)} [输入文件]...
Opciones Explicación
-norte --Quiet, --silent, modo silencioso, no envía contenido a la pantalla
-mi - Script de expresión, agregue "script" a la lista en ejecución del programa
-F - Archivo de archivo de secuencia de comandos, agregue "archivo de secuencia de comandos" a la lista de ejecución del programa
-r --Regexp-exended, usa expresiones regulares extendidas en scripts
-yo -In situ, edite archivos directamente
-i.bak Realice una copia de seguridad de los archivos y edítelos en su lugar

Comandos de edición de uso común:

Palabra clave Explicación
re Elimine filas coincidentes y habilite inmediatamente la siguiente ronda de bucle
pags Imprima el contenido del espacio del modo actual y añádalo a la salida predeterminada
una Recién agregado, una cadena puede ir seguida de a, admite el uso de \ n para lograr un agregado de varias líneas
yo Insertar texto antes de la línea
C Reemplazar una o varias líneas de texto
w Guarde las líneas que coinciden con el patrón en el archivo especificado
r Leer el texto del archivo especificado en la línea coincidente en el espacio del patrón
= Imprimir línea número de líneas en el espacio del patrón
! Inversión de filas coincidentes en el espacio de patrones
s /// Buscar y reemplazar, admite el uso de otros separadores, s @@@, s ###. Marca de reemplazo: 1.g reemplazo global en la línea 2.p muestra la línea reemplazada exitosamente 3.w newFile guarda la línea reemplazada exitosamente en el archivo

uso de instancia sed

El contenido del archivo de prueba es el siguiente

[root@hadoop-master test-sed]# nl file.txt
     1	leo hello-sed
     2	leo2 hello2-sed
     3	leo3 hello3-sed
     4	hello se
     5	aaa 111
     6	bbb 222
     7	ccc 333

1. Imprime la segunda línea del archivo.

[root@hadoop-master test-sed]# nl file.txt | sed -n 2p
     2	leo2 hello2-sed

2. Imprima las líneas 2 a 5 del archivo.

[root@hadoop-master test-sed]# nl file.txt | sed -n '2,5p'
     2	leo2 hello2-sed
     3	leo3 hello3-sed
     4	hello se
     5	aaa 111

3. Elimina la segunda línea.

[root@hadoop-master test-sed]# nl file.txt | sed '2d'
     1	leo hello-sed
     3	leo3 hello3-sed
     4	hello se
     5	aaa 111
     6	bbb 222
     7	ccc 333

4. Elimine las líneas 2 a 5.

[root@hadoop-master test-sed]# nl file.txt | sed '2,5d'
     1	leo hello-sed
     6	bbb 222
     7	ccc 333

5. Elimina la penúltima línea.

[root@hadoop-master test-sed]# nl file.txt | sed '2,$d'
     1	leo hello-sed

6, se agregó "love china"

[root@hadoop-master test-sed]# nl file.txt | sed '2a love china\n'
     1	leo hello-sed
     2	leo2 hello2-sed
love china

     3	leo3 hello3-sed
     4	hello se
     5	aaa 111
     6	bbb 222
     7	ccc 333
[root@hadoop-master test-sed]# nl file.txt | sed '2i love china'
     1	leo hello-sed
love china
     2	leo2 hello2-sed
     3	leo3 hello3-sed
     4	hello se
     5	aaa 111
     6	bbb 222
     7	ccc 333

7. Sustituya las líneas 2 a 5 por "china".

[root@hadoop-master test-sed]# nl file.txt | sed '2,5c  china'
     1	leo hello-sed
china
     6	bbb 222
     7	ccc 333

8. Imprima solo líneas que contengan plantillas

[root@hadoop-master test-sed]# nl file.txt | sed -n '/leo/p'
     1	leo hello-sed
     2	leo2 hello2-sed
     3	leo3 hello3-sed

9. Imprima solo las líneas del paquete sin plantillas

[root@hadoop-master test-sed]# nl file.txt | sed '/leo/d'
     4	hello se
     5	aaa 111
     6	bbb 222
     7	ccc 333

10. Reemplazar cuerda

Reemplazar leo con china

[root@hadoop-master test-sed]# nl file.txt | sed 's/leo/china/g'
     1	china hello-sed
     2	china2 hello2-sed
     3	china3 hello3-sed
     4	hello se
     5	aaa 111
     6	bbb 222
     7	ccc 333

Supongo que te gusta

Origin blog.csdn.net/u011047968/article/details/108742279
Recomendado
Clasificación