Awk não renderiza nenhum resultado

Awk não renderiza nenhum resultado

Meu objetivo é colocar o arquivo criado no mês atual em um diretório.

Parece que o comando está correto, mas não gera nenhum resultado:

Date=`date '+%b'`

echo $Date
Oct

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

Responder1

Você deve usá-lo desta forma:

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

A explicação éaqui

Mas pode ser melhor usar findno seu script.

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

Se você tiver clássico awkem vez de gawk:

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

Responder2

O problema aqui é que awknão há como dizer que o dinterior do padrão pretende representar a variável com esse nome: awkestá tentando corresponder a um literal d. Você pode usar a expansão de parâmetros:

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

Dito isto, duas coisas a serem observadas:

informação relacionada