特定のファイルにgrepを使用する方法は?

特定のファイルにgrepを使用する方法は?

たとえば、私は次のように入力します。

ls -altr | grep "23 Dec"

したがって、12月23日のファイルのみが表示され、次のようにgrepを使用したいと思います。

ls -altr | grep "23 Dec" | xargs grep -l "some_string"

しかし、これはうまくいきません)

どうすればいいですか?

答え1

好きな方法で使用するには、次のことを試してください。

ls -altr | grep "23 Dec" | awk '{print $9}' | xargs -i grep -l "some_string" {}

それともfindそうします:

find . -type f -newermt 2012-12-23 ! -newermt 2012-12-24 -exec grep -l "some_string" {} \;

findコマンドでセミコロンを避けることを忘れないでください。また、 find はxargs-exec オプションで使用する場合とほぼ同じ方法で動作します。

答え2

特定の日付に変更された特定のファイルを見つけたい場合は、

パイプは必要ありません。 (lsはデフォルトで修正時間を使用します.)

find . -type f -newermt 2012-12-23 ! -newermt 2012-12-24 -iname '*some_string*'

関連情報