HP-UX Unixで次のコマンドを使用して、現在の日付のファイルを取得しようとしています。
$ ls -lrt ABC.LOG* |grep "`date +"%b %d"`"
しかし、それは私にエラーを与えています:
ksh: : cannot execute
grep: can't open %d
何か提案はありますか?
承認された回答:
このエラーは、grep
の引数の引用に起因します。 そして、バックティックがうまくネストしないという事実:
grep "`date +"%b %d"`"
これは
と書く方が良いですgrep "`date +'%b %d'`"
…またはそれ以上、
grep "$(date +'%b %d')"
実際、$(...)
バックティックの代わりに、内側の二重引用符を保持できるはずです:
grep "$(date +"%b %d")"
ls
の出力をgrepする代わりの方法 することになるだろう
find . -type f -name "ABC.LOG*" -ctime -1
これにより、すべての通常のファイルが検索されます(-type f
)名前が指定されたパターンに一致し、ctimeが現在の時刻から24時間以内である現在のディレクトリ内 。ファイルのctimeは、ファイルのデータまたはメタデータが最後に変更された時刻です。
ただし、これは、達成しようとしていることとまったく同じではありません。これもサブディレクトリに繰り返されます。