Cómo permitir que AWK use variables de shell - Parte 11
- 2554
- 381
- Mateo Pantoja
Cuando escribimos scripts de shell, normalmente incluimos otros programas o comandos más pequeños como Asombrar Operaciones en nuestros scripts. En el caso de AWK, tenemos que encontrar formas de pasar algunos valores de las operaciones de Shell a AWK.
Esto se puede hacer utilizando variables de shell dentro de los comandos AWK, y en esta parte de la serie, aprenderemos cómo permitir que AWK use variables de shell que puedan contener valores que queremos pasar a los comandos AWK.
Posiblemente hay dos formas de habilitar AWK para usar las variables de shell:
1. Usando citas de concha
Echemos un vistazo a un ejemplo para ilustrar cómo puede usar citas de shell para sustituir el valor de una variable de shell en un comando AWK. En este ejemplo, queremos buscar un nombre de usuario en el archivo /etc/passwd, filtrar e imprimir la información de la cuenta del usuario.
Por lo tanto, podemos escribir un prueba.mierda
Script con el siguiente contenido:
#!/bin/bash #Leer entrada de usuario Leer -p "Ingrese el nombre de usuario:" Nombre de usuario #Search para nombre de usuario en el archivo/etc/passwd e imprima detalles en la pantalla CAT/etc/passwd | AWK "/ $ USERNAME/" 'Imprimir $ 0'
A partir de entonces, guarde el archivo y la salida.
Interpretación del comando awk en el prueba.mierda
guión arriba:
CAT /ETC /PASSWD | AWK "/ $ USERNAME/" 'Imprimir $ 0'
"/ $ UserName/"
- cotización de shell utilizada para sustituir el valor de la variable de shell nombre de usuario En el comando AWK. El valor de nombre de usuario es el patrón a buscar en el archivo /etc/passwd.
Tenga en cuenta que la cita doble está fuera del script AWK, 'imprimir $ 0'
.
Luego haga el ejecutable de script y ejecutelo de la siguiente manera:
Prueba de $ chmod +x.sh $ ./texto.mierda
Después de ejecutar el script, se le pedirá que ingrese un nombre de usuario, Escriba un válido nombre de usuario y golpear Ingresar. Verá los detalles de la cuenta del usuario desde el /etc/passwd Archivo como se muestra a continuación:
Script shell para encontrar el nombre de usuario en el archivo de contraseña2. Usando la asignación de variables de AWK
Este método es mucho más simple y mejor en comparación con el método uno anterior. Teniendo en cuenta el ejemplo anterior, podemos ejecutar un comando simple para lograr el trabajo. Según este método, usamos el -V
opción para asignar una variable de shell a una variable AWK.
En primer lugar, cree una variable de shell, nombre de usuario
y asignarle el nombre que queremos buscar en el /etc/passswd
archivo:
nombre de usuario = "Aaronkilik"
Luego escriba el comando a continuación y presione Enter:
# CAT /ETC /PASSWD | AWK -V name = "$ UserName" '$ 0 ~ nombre imprimir $ 0'Encuentre el nombre de usuario en el archivo de contraseña usando AWK
Explicación del comando anterior:
-V
- Opción AWK para declarar una variablenombre de usuario
- es la variable de shellnombre
- es la variable AWK
Echemos un vistazo cuidadoso $ 0 ~ nombre
Dentro del guión AWK, '$ 0 ~ nombre imprimir $ 0'
. Recuerde, cuando cubrimos los operadores de comparación de AWK en la Parte 4 de esta serie, uno de los operadores de comparación fue el valor ~
patrón, lo que significa: verdadero si el valor coincide con el patrón.
El salida ($ 0)
del comando de gato tuvo que hacer awk coincide con el patrón (Aaronkilik)
¿Cuál es el nombre que estamos buscando en /etc/passwd, Como resultado, la operación de comparación es verdadera. La línea que contiene la información de la cuenta del usuario se imprime en la pantalla.
Conclusión
Hemos cubierto una sección importante de características de AWK, que puede ayudarnos a usar variables de shell dentro de los comandos AWK. Muchas veces, escribirá pequeños programas o comandos AWK dentro de los scripts de shell y, por lo tanto, debe tener una comprensión clara de cómo usar las variables de shell dentro de los comandos AWK.
En la siguiente parte de la serie AWK, nos sumergiremos en otra sección crítica de las características de AWK, es decir, declaraciones de control de flujo. Así que mantente atento y sigamos aprendiendo y compartiendo.
- « Corrija fácilmente un error tipográfico de comando anterior usando el símbolo de quilates (^)
- 20 Cuentas de Linux a seguir en Twitter »