Cómo permitir que Awk use variables de shell-Parte 11

Cómo permitir que Awk use variables de shell-Parte 11

Cuando escribimos scripts de shell, normalmente incluimos otros programas o comandos más pequeños como operaciones Awk. en nuestros scripts. En el caso de Awk, tenemos que encontrar formas de pasar algunos valores del shell a las operaciones Awk.

Esto se puede hacer usando variables del shell dentro de los comandos Awk, y en esta parte de la serie, aprenderá cómo permitir que Awk use variables de shell que pueden contener valores que queremos pasar a los comandos de Awk.

Hay dos formas posibles de permitir que Awk use variables de shell:

1 . Uso de las comillas de shell

Echemos un vistazo a un ejemplo para ilustrar cómo puede utilizar las comillas 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 script test.sh con el siguiente contenido:

#!/bin/bash #read user input read-p “Por favor ingrese el nombre de usuario:” username #busque el nombre de usuario en el archivo/etc/passwd e imprima los detalles en la pantalla cat/etc/passwd | awk “/$ username/” ‘print $ 0’ freestar.config.enabled_slots.push

A continuación, guarde el archivo y salga.

Interpretación del comando Awk en el script test.sh anterior:

cat/etc/passwd | awk “/$ username/” ‘print $ 0’

“/$ username/”-cita de shell utilizada para sustituir el valor de la variable de shell username. en el comando Awk. El valor de nombre de usuario. es el patrón que se buscará en el archivo /etc/passwd.

Tenga en cuenta que las comillas dobles están fuera del script Awk, ‘print $ 0’.

Luego haga que el script sea ejecutable y ejecútelo de la siguiente manera:

$ chmod + x test.sh $ ./text.sh

Después de ejecutar el script, se le pedirá que ingrese un nombre de usuario. escriba un nombre de usuario. válido y presione Intro. Verá los detalles de la cuenta del usuario del archivo /etc/passwd. como se muestra a continuación:

 Script de Shell para encontrar el nombre de usuario en el archivo de contraseña  Script de shell para buscar el nombre de usuario en el archivo de contraseña Script de shell para encontrar el nombre de usuario en el archivo de contraseña

2. Uso de 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 realizar el trabajo. Bajo este método, usamos la opción-v para asignar una variable de shell a una variable Awk.

En primer lugar, cree una variable de shell, nombre de usuario y asígnele el nombre que queremos buscar en/etc/archivo passswd:

username = “aaronkilik”

Luego, escriba el comando a continuación y presione Enter:

# cat/etc/passwd | awk-v name = “$ username” ‘$ 0 ~ name print $ 0’ Buscar nombre de usuario en el archivo de contraseña usando Awk  Buscar nombre de usuario en el archivo de contraseña usando Awk Find Username-in-Password-File-Using-Awk

Explicación del comando anterior:

  1. -v-Opción Awk para declarar una variable
  2. nombre de usuario-es la variable de shell
  3. nombre-es el Variable Awk

Echemos un vistazo a $ 0 ~ name dentro del script Awk, ‘$ 0 ~ name print $ 0’. Recuerde, cuando cubrimos los operadores de comparación Awk en la Parte 4 de esta serie, uno de los operadores de comparación fue valor ~ patrón, lo que significa: verdadero si el valor coincide con el patrón.

La salida ($ 0) del comando cat enviado a Awk coincide con el patrón (aaronkilik) que es el nombre que estamos buscando en /etc/passwd. como resultado, el 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 las funciones de Awk, que pueden ayudarnos a usar las variables de shell dentro de los comandos de Awk. Muchas veces, escribirá pequeños programas o comandos Awk dentro de 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, que son las declaraciones de control de flujo. Así que estad atentos y sigamos aprendiendo y compartiendo.