Awk no da ningún resultado

Awk no da ningún resultado

Mi objetivo es conseguir el archivo creado en el mes actual en un directorio.

Parece que el comando es correcto pero no genera ningún resultado:

Date=`date '+%b'`

echo $Date
Oct

ls -l | awk -v d="$Date" '/d/ {print $NF}'

Respuesta1

Deberías usarlo de esta manera:

ls -l | awk -v d="$Date" '$0 ~ d {print $NF}'

La explicación esaquí

Pero tal vez sea mejor usarlo finden su script.

find . -maxdepth 1 -type f -daystart -ctime -`date "+%d"`

Si tienes clásico awken lugar de gawk:

find * -prune -type f -cmin -`date '+%d %H %M' | awk '{print ($1*24+$2)*60+$3}'`

Respuesta2

El problema aquí es que awkno hay forma de saber que el dinterior del patrón está destinado a representar la variable de ese nombre: awkestá intentando hacer coincidir un literal d. Puedes hacer uso de la expansión de parámetros en su lugar:

ls -l | awk "/$Date/ {print \$NF}"

Dicho esto, dos cosas a tener en cuenta:

información relacionada