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:
- O tempo listado em
ls -l
output é o registro de data e hora: a última vez em que o arquivo foi modificado, não criado. Os tempos de criação de arquivos são não confiáveis na melhor das hipóteses e indisponível na pior das hipóteses. -
Você não deve analisar a saída de ls
Use
find
, como em a resposta de dchirikov .