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