36

-l フラグを grep で使用して、一致するファイル名を出力するだけです。

結果(ファイル)を昇順、つまり最新のものから順にリストしたいと思います。

明らかに

grep -l <pattern> *.txt | ls -rt

ls -lrtは単にすべてのファイルを出力するだけなので、必要なものではありません。

4

3 に答える 3

63

試す:

ls -rt *.txt | xargs grep -l <pattern>

最初にファイルlsを一覧表示*.txtし、変更時刻 (新しいものが最後) で並べ替えます。次に、各エントリを実行してgrep、パターンを含むファイルのみを出力します。

于 2012-07-09T09:48:34.087 に答える