awk es una excelente herramienta de procesamiento de texto, se puede decir que es un lenguaje de programación. A continuación se muestra la variable incorporada awk.
1. Tabla de variables incorporada
Descripción del atributo $ 0 Registro actual (como una sola variable) $ 1 ~ $ n El noveno campo del registro actual, separado por FS entre los campos FS Separador de campo de entrada predeterminado Es el espacio NF el número de campos en el registro actual, es decir, cuántas columnas NR ha leído el número de registros, es decir, el número de línea, desde el comienzo del registro de entrada RS, el separador se establece de manera predeterminada en la línea nueva. El separador de campo de salida es también un espacio ORS Separador de registro de salida, el valor predeterminado es la nueva línea. IGNORECASE Si es verdadero, entonces haga coincidir ARGIND ARGV insensible a mayúsculas del archivo procesado actualmente CONVFMT Formato de conversión de número% .6g ENVIRON UNIX variable de entorno ERRNO Mensaje de error del sistema UNIX FIELDWIDTHS Campo de entrada ancho Separador en blanco cadena FNR Número de registro actual OFMT número formato de salida% .6g RSTART cadena coincidente que coincide con RLENGTH longitud de cadena coincidente SUBSEP \\ 034
2, instancia
1, operaciones de uso común
[chengmo @ localhost ~] $ awk '/^ root /{print $ 0}' /etc /passwd root: x: 0: 0: root: /root: /bin /bash < Br>
/^ raíz /es la expresión de selección, $ 0 La tabla es progresiva
2. Configuración del separador de campo (método de uso de FS)
[chengmo @ localhost ~] $ awk 'BEGIN { FS = ": "} /^ root /{print $ 1, $ NF} '/etc /passwdroot /bin /bash
FS es un separador de campo que puede configurar usted mismo. El valor predeterminado es un espacio, ya que passwd está separado por ": ", por lo que necesita modificar el separador predeterminado. NF es el número total de campos, $ 0 representa el registro de la fila actual, $ 1- $ n es la fila actual y cada campo corresponde a un valor.
3, el número de registros (NR, método de uso FNR)
[chengmo @ localhost ~] $ awk 'BEGIN {FS = ": "} {print NR, $ 1, $ NF} '/etc /passwd1 root /bin /bash2 bin /sbin /nologin3 daemon /sbin /nologin4 adm /sbin /nologin5 lp /sbin /nologin6 sync /bin /sync7 shutdown /sbin /shutdown … …
hell > NR obtiene la línea de registro actual
4, configura el separador de campo de salida (método de uso OFS)
[chengmo @ localhost ~] $ awk 'BEGIN {FS = ": "; OFS = " ^^ "} /^ root /{print FNR, $ 1, $ NF} '/etc /passwd1 ^^ root ^^ /bin /bash
Configuraciones OFS Separador de campo predeterminado
5, establecer separador de registro de línea de salida (método de uso ORS)
[chengmo @ localhost ~] $ awk 'BEGIN {FS = " : "; ORS = " ^^ "} {print FNR, $ 1, $ NF} '/etc /passwd 1 root /bin /bash ^^ 2 bin /sbin /nologin ^^ 3 daemon /sbin /nologin ^ ^ 4 adm /sbin /nologin ^^ 5 lp /sbin /nologin
De lo anterior, ORS se establece de manera predeterminada en una nueva línea, que se modifica a: " ^^ ", todas las líneas Separado por " ^^ ".
6. Adquisición de parámetros de entrada (uso ARGC, ARGV)
[chengmo @ localhost ~] $ awk 'BEGIN {FS = ": "; print " ARGC = " ARGC; para (k en ARGV) {print k " = " ARGV [k];}} '/etc /passwdARGC = 20 = awk1 = /etc /passwd
ARGC obtiene todo Ingrese el número de parámetros, ARGV obtiene el contenido del parámetro de entrada, es una matriz.
7, obtenga el nombre del archivo (use FILENAME)
[chengmo @ localhost ~] $ awk 'BEGIN {FS = ": "; print FILENAME} {print FILENAME} '/etc /passwd
/etc /passwd
FILENAME, $ 0- $ N, NF no puede usarse en BEGIN, BEGIN no puede obtener ninguna operación de archivo Variable
8. Obtenga la variable de entorno linux (utilizada por ENVIRON)
[chengmo @ localhost ~] $ awk 'BEGIN {print ENVIRON [" PATH "];}' /etc /passwd /usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/lib/ccache:/usr/lib/icecc/bin:/usr/
local /bin : /bin: /usr /bin: /usr /local /sbin: /usr /sbin: /sbin: /usr /java /
jdk1.5.0_17 /bin: /usr/java/jdk1.5.0 _17 /jre /bin: /usr /local /mysql /bin: /home /web97 /bin
ENVIRON es una matriz sub-típica que puede obtener su valor por el valor clave correspondiente.
9. Configuración de formato de datos de salida: (uso OFMT)
[chengmo @ localhost ~] $ awk 'BEGIN {OFMT = "%. 3f "; 2 /3,123.11111111;} '/etc /passwd 0.667 123.111
El formato de salida predeterminado de OFMT es:% .6g Mantenga las seis posiciones decimales. La modificación de OFMT aquí modificará el formato de salida de datos predeterminado.
10, especifique el separador por ancho (para uso de FIELDWIDTHS)
[chengmo @ localhost ~] $ echo 20100117054932 |
awk 'BEGIN {FIELDWIDTHSS = 4 2 2 2 2 3 "} {print $ 1 " - " $ 2 " - " $ 3, $ 4 ": " $ 5 ": " $ 6} '2010-01-17 05:49:32
FIELDWIDTHS es una lista de números separados por espacios que se utiliza para separar los registros de los campos, FIELDWIDTHS = " 4 2 2 2 2 2 "significa que el ancho de $ 1 es 4, $ 2 es 2 y $ 3 es 2 ... Esta vez se ignorará: separador de FS.
11, RSTART RLENGTH usa
[chengmo @ localhost ~] $ awk 'BEGIN {start = match
(" esto es una prueba ", /[az] + $ /); print start, RSTART, RLENGTH} '11 11 4 [chengmo @ localhost ~] $ awk 'BEGIN
{start = match (" esto es una prueba " , /^ [az] + $ /); inicio de impresión, RSTART, RLENGTH} '0 0 – 1
RSTART se corresponde con la primera posición de la expresión regular, RLENGTH coincide con la longitud del carácter, No se encuentra como -1.
Lo anterior es: awk algunas variables incorporadas para usar, espero que haya algún problema que pueda comunicarse conmigo.
Administrar el rendimiento de un host Linux a menudo parece algo mágico. Muchos a
Falta el archivo de cabecera ‘ security /pam_modules.h ’ es parte de la versión de des
Al compilar el programa hoy, el error: clase de almacenamiento especificada para el parámetro no se
Todo el mundo sabe cómo verificar el tiempo de instalación del sistema win7. De hecho, es muy simpl
Use Beowulf para hacer que las PC comunes se agrupen
Lagarto literario discreto: recuerde SUSE Linux 20th Anniversary
Comando Linux entrada: otro tutorial basado comando importante
Ruta de búsqueda de la biblioteca dinámica de Linux (.so)
Use la herramienta de caracteres xm para administrar xen guardar, detener y pausar
Error del sistema Linux Ghost en Windows XP
Ver /modificar la zona horaria y hora de Linux
Linux eliminar archivo por lotes y archivo vacío eliminar comando
Cómo buscar nombres de archivos y contenido al mismo tiempo, la función de búsqueda de Windows 7
"DOTA2" El bono TI5 es enormemente citado por la Administración General de Deportes del Estado.
Sistema Win10 cómo agregar esta computadora a la carpeta de inicio
Solución de escasez de espacio en disco del sistema WinXP C
El servicio de experiencia de gloria de rey no tiene versión de computadora
¿Qué puedo hacer si no puedo iniciar la "Política de grupo" para sistemas como Vista?
Win7 sistema vpn800 error cómo resolver
Las habilidades no son más prácticas, entonces los cuatro trucos de Win7 favoritos