HP-UX Unixでは、次のコマンドを使用してファイルの現在の日付を取得しようとします。
$ ls -lrt ABC.LOG* |grep "`date +"%b %d"`"
ただし、エラーが発生します。
ksh: : cannot execute
grep: can't open %d
どんな提案がありますか?
ベストアンサー1
エラーは、パラメータへの参照grep
とバックティックがうまくネストされていないという事実で発生します。
grep "`date +"%b %d"`"
これは次のように書く方が良いです。
grep "`date +'%b %d'`"
...またはより良い、
grep "$(date +'%b %d')"
実際、$(...)
内部二重引用符は保持できますが、逆引用符は保持できません。
grep "$(date +"%b %d")"
grep出力の別のオプションはls
次のとおりです。
find . -type f -name "ABC.LOG*" -ctime -1
-type f
現在のディレクトリで、指定されたパターンとctime()と一致する名前を持つすべての一般的なファイルを見つけます。現在時刻から24時間以内。ファイルのctimeは、ファイルデータまたはメタデータが最後に変更された時刻です。
しかし、それはあなたが達成したいものとまったく同じではありません。これはサブディレクトリでも繰り返されます。