shell y sed Introducción a --gawk procesamiento de texto

programa de gawk

GNU versión del programa original awk de Unix en el programa cuando gawk. En lenguaje de programación gawk, que puede hacer las siguientes cosas:

  • Definir variables para contener los datos
  • Y el uso de los operadores aritméticos para procesar la cadena de datos
  • Utilizando una serie de conceptos de programación estructurada (como si-entonces declaraciones y bucles) para mejorar la lógica de procesamiento de datos de proceso.
  • Mediante la extracción de los elementos de datos en el archivo de datos, para reorganizar o formato, generar un informe con formato
    formato de comando 1.gawk
    formato básico procedimiento gawk son los siguientes:
    gawk Programa de Opciones de archivo
    Opciones gawk son los siguientes:
    | Opciones | Descripción |
    | - | - |
    | -F FS | línea especificada en el campo de datos del separador de campo dividido |
    | archivo -f | leer desde el archivo especificado |
    | -v var = valor | una variable definida en su programa predeterminado gawk valor |
    | especificar el número máximo de campos en el archivo de datos a procesar en | | -mf N
    | -mr N | Especifica el número máximo de filas de datos en el archivo de datos |
    | -W palabra clave | gawk especificar el modo de compatibilidad o el nivel de alerta |

2. Utilice una variable de campo de datos
por defecto, las variables gawk siguientes serán asignados a sus campos de datos se encontró en la línea de texto:

  • $ 0 representa toda la línea de texto;
  • $ 1 representa la primera línea de texto en un campo de datos
  • $ 2 representa la segunda línea del campo de datos de texto
  • $ N-ésimo campo de datos representativo de n líneas de texto
    El siguiente ejemplo representa una lectura de un archivo de texto, y muestra el valor de un campo de datos
[root@ommleft zd]# cat data2.txt
One line of test text.
Two line of test text.
Three line of test text.
[root@ommleft zd]# gawk '{print $1}' data2.txt
One
Two
Three

El uso de separador de campo para leer el archivo, que se puede utilizar para especificar las opciones -F

[root@ommleft zd]# gawk -F: '{print $1}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown

3. Utilizar varios comandos desde el guión
a la secuencia de comandos en la línea de comandos usando múltiples comandos, puede poner un punto y coma puede ser entre los comandos.

[root@ommleft zd]# echo "My name is Rich"|gawk '{$4="Christine";print $0}'
My name is Christine

4. Leer el programa desde el archivo
editor de gawk permite a un programa almacenado en un archivo, y se hace referencia en la línea de comandos.

[root@ommleft zd]# more script.gawk
{print $1 "'s home directory is " $6}
[root@ommleft zd]# gawk -F: -f script.gawk /etc/passwd
root's home directory is /root
bin's home directory is /bin
daemon's home directory is /sbin
adm's home directory is /var/adm
lp's home directory is /var/spool/lpd

COMENZAR 5.gawk
COMENZAR fuerzas gawk de palabras clave en el gawk script especificado tras el inicio de palabras clave antes de leer los datos.

[root@ommleft zd]# gawk 'BEGIN{print "Hello World!"}'
Hello World!

texto de lectura y visualización

[root@ommleft zd]# cat data3.txt
Line 1
Line 2
Line 3
root@ommleft zd]# gawk 'BEGIN {print "The data3 file contents:"}{print $0}' data3.txt
The data3 file contents:
Line 1
Line 2
Line 3

6.gawk FIN
palabras clave similares de comenzar, palabra clave END le permite especificar una secuencia de comandos, gawk se llevará a cabo después de leer los datos.

[root@ommleft zd]# gawk 'BEGIN{print "The data3 file contents:"}
{print $0}
END{print "End of File"}' data3.txt
The data3 file contents:
Line 1
Line 2
Line 3
End of File

Editor SED

editor sed se conoce como editor de flujo (editor de flujo), lleva a cabo editor sed las operaciones siguientes:
1) la primera línea de datos leídos de la entrada.
2) coinciden con los datos de los comandos de acuerdo con el editor proporciona
3) de acuerdo con los comandos para modificar la secuencia de datos
) a la salida de un nuevo dato de 4 a STDOUT
formato del comando de sed es el siguiente:
Archivo Sed opciones de secuencias de comandos
opciones de comando sed son sigue como:
| Opciones | Descripción |
| comando -e | Añade el comando especificado en el comando existente |
| archivo -f | Añadir el archivo especificado en el comando para el comando existente |
| -n | ninguna salida de comandos, utilice la salida del comando de impresión completado |

1. En la definición de los comandos del editor de línea de comandos

[root@ommleft zd]# echo "This is a test"|sed 's/test/trial/' 
This is a trial

También se puede tratar, los datos de archivo de salida STDOUT, pero no modifica el archivo de datos

[root@ommleft zd]# cat data1.txt
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
[root@ommleft zd]# sed 's/dog/cat/' data1.txt
The quick brown fox jumps over the lazy cat.
The quick brown fox jumps over the lazy cat.
The quick brown fox jumps over the lazy cat.
The quick brown fox jumps over the lazy cat.
The quick brown fox jumps over the lazy cat.

2. En la línea de comandos usando las múltiples comandos de edición
para ser ejecutado sed varios comandos en la línea de comandos, sólo tiene que utilizar la opción -e en él.

[root@ommleft zd]# sed -e 's/brown/green/;s/dog/cat/' data1.txt
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.

3. Leer comandos del editor de un archivo

[root@ommleft zd]# cat script.sed
s/brown/green/
s/fox/elephant/
s/dog/cat/
[root@ommleft zd]# sed -f script.sed data1.txt
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
Publicado 75 artículos originales · ganado elogios 7 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/zhengdong12345/article/details/101266083
Recomendado
Clasificación