A ferramenta basename
pode remover o caminho antes do nome do arquivo.
find /home/user/logfilesError/ -maxdepth 1 -type f -name "gandalf_*"\
-daystart -mtime -1 -exec grep -rl "ERROR" "{}" + | xargs -n 1 basename
fornecerá a saída desejada.
-n 1
diz a xargs
para usar exatamente um argumento para basename. Então, se ele receber mais, gerará um basename
process por argumento. Isso é necessário, pois basename
usa apenas um nome de arquivo como argumento.
Este comando NÃO irá funcionar se seus nomes de arquivos contiverem espaços. Neste caso, como sugerido por @HaukeLaging, use:
find /home/user/logfilesError/ -maxdepth 1 -type f -name "gandalf_*"\
-daystart -mtime -1 -exec grep -rl "ERROR" "{}" + | xargs -n 1 -d \n basename
Isso não funcionará se seus nomes de arquivos contiverem novas linhas, no entanto.