Directorio de artículos
- uso de sed
- uso de instancia sed
-
- 1. Imprime la segunda línea del archivo.
- 2. Imprima las líneas 2 a 5 del archivo.
- 3. Elimina la segunda línea.
- 4. Elimine las líneas 2 a 5.
- 5. Elimina la penúltima línea.
- 6, se agregó "love china"
- 7. Sustituya las líneas 2 a 5 por "china".
- 8. Imprima solo líneas que contengan plantillas
- 9. Imprima solo las líneas del paquete sin plantillas
- 10. Reemplazar cuerda
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