特定の文字列を含むディレクトリで最新のファイルを見つける方法は?

特定の文字列を含むディレクトリで最新のファイルを見つける方法は?

特定のフォルダから最近作成されたファイルを検索し、コンテンツのパターンを特定する必要があります。これまで、私は次のコマンドを使用してかなりの成功を収めました。

find /var/log/folder -type f -printf '%T+ %p\n' | sort | tail -n1 | xargs grep 'string to find'

一致する最新のファイルが見つかりましたが、標準出力に予期しない行が表示されます。

$ find /var/log/folder -type f -printf '%T+ %p\n' |   sort | tail -n1 | xargs grep 'string to find'
grep: 2016-05-12+20:01:59.0570667340: No such file or directory
/var/log/folder/file:string to find

「該当するファイルまたはディレクトリなし」行がないようにコマンドを変更するにはどうすればよいですか?

ベストアンサー1

ls -1rt /path/to/files/ | tail -n1最新のファイル(修正時間ベース)はディレクトリにあります。これを引数として渡しますgrep

grep 'string to find' "$(ls -1rt /path/to/files/ | tail -n1)"

おすすめ記事