Awk não está renderizando nenhum resultado

2

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

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

Date='date '+%b''

echo $Date
Oct

ls -l | awk -v d="$Date" '/d/ {print $NF}'
    
por Ram 15.10.2013 / 13:59

2 respostas

2

O problema aqui é que awk não tem como dizer que o d dentro do padrão deve representar a variável desse nome: awk está 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 notar:

por 15.10.2013 / 14:18
7

Você deve usar da seguinte maneira:

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

A explicação é aqui

Mas pode ser melhor usar find no seu script.

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

Se você tem o clássico awk em vez de gawk :

find * -prune -type f -cmin -'date '+%d %H %M' | awk '{print ($1*24+$2)*60+$3}''
    
por 15.10.2013 / 14:15