GNU/Linux >> Linux の 問題 >  >> Linux

Kshの引用符の内側のバックティックの内側の引用符?

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は、ファイルのデータまたはメタデータが最後に変更された時刻です。

ただし、これは、達成しようとしていることとまったく同じではありません。これもサブディレクトリに繰り返されます。


Linux
  1. Unixのマニュアルページで二重引用符の代わりに二重引用符を使用するのはなぜですか?

  2. Grep -v予期しない動作?

  3. Cut / Grep And Df -h?

  1. チルダ(〜)が二重引用符の内側に展開されないのはなぜですか?

  2. Grep And Tail -f?

  3. 再帰的にgrepするにはどうすればよいですか?

  1. 引用の中のワイルドカード?

  2. Grep:メモリが使い果たされましたか?

  3. スクリプトが実行されていることを確認しますか?