grep caminho de saída com data de modificação do arquivo?

3

É possível fazer com que o comando grep envie caminhos de arquivo com data de modificação do arquivo da seguinte forma:

12-02-2015 /file/path/to/the/file
16-02-2015 /file/path/to/the/file
25-02-2015 /file/path/to/the/file
03-04-2015 /file/path/to/the/file

ou:

/file/path/to/the/file 12-02-2015
/file/path/to/the/file 12-02-2015
/file/path/to/the/file 12-02-2015
/file/path/to/the/file 12-02-2015
    
por user3257264 13.02.2015 / 15:17

2 respostas

4

grep em si não tem nenhuma funcionalidade para isso. Mas você pode usar awk . Use essa sintaxe:

grep -Hr pattern . | awk -F: '{"stat -c %z "$1 | getline r; print r": "$0 }'

Isso força grep a imprimir os nomes dos arquivos -H . -r significa pesquisa negativa no diretório fornecido . . O separador de campo awk está definido como : . O primeiro varibale $1 agora contém o nome do arquivo. awk chama stat -c %z em cada nome de arquivo, o que fornece a hora da modificação em formato legível por humanos. Isso é salvo na variável r , que é impressa na frente de cada resultado da pesquisa.

    
por 13.02.2015 / 15:45
1

Aqui está uma alternativa mais compreensível usando xargs

grep -rl pattern | xargs stat -c %n':'%z | awk -F: '{print $1}'
    
por 03.04.2017 / 18:46