次の内容を含むファイル/ディレクトリを表示する次のコマンドがあります。EXEC_EC
注文する:
ls -ltr | grep 'EXEC_EC'
上記のコマンドを使用して:find
7日前に生成されたファイルをフィルタリングするコマンドを作成できますか?
名前の付いたファイルを一覧表示し、EXEC_EC
7 日より古いファイルを見つけようとします。
サンプル出力
example input:
dr-xr-xr-x 1 home abc 999 Jun 30 11:12 EXEC_EC_ABC_1
dr-xr-xr-x 1 home abc 999 Jul 25 12:44 EXEC_EC_ABC_2
dr-xr-xr-x 1 home abc 999 Aug 1 22:10 EXEC_EC_ABC_3
dr-xr-xr-x 1 home abc 999 Aug 2 22:20 Number
dr-xr-xr-x 1 home abc 999 Aug 2 22:20 Number2
i am trying to get below output
EXEC_EC_ABC_1
EXEC_EC_ABC_2
答え1
grep
とにかく使用する場合、フィルタリングに使用することは意味がありませんfind
。
find . -mindepth 1 -maxdepth 1 -name '*EXEC_EC*' -mtime +7
デフォルトでは、find
サブツリー全体(つまり、すべてのサブディレクトリの内容)が検索されます。-mindepth 1 -maxdepth 1
この例は単一のディレクトリ内のコンテンツでのみ機能するため、これが発生しないようにしてください。ディレクトリ引数は無視さ-mindepth 1
れますfind
(この場合は.
必須ではありませんが、一般的な場合)。-maxdepth 1
サブディレクトリに降りるのを防ぎます。
答え2
これがあなたが探しているものですか?
$ find . -name '*EXEC_EC*' -mtime +7 -print
。 =は現在のディレクトリを表し、ディレクトリパスに置き換えることができます。
-mtime - ファイルの変更時間を示し、7日より古いファイルを見つけるために使用されます。
答え3
lsの出力をgrepにパイプする必要はありません。 Grepには組み込みオプションがあります。
grep -rle 'EXEC_EC'
-lはファイルのみをリストします。 -r 再帰は、すべてのファイルが現在のパスから始まり、検索されることを意味します。 -e この grep がパターンを文字列として期待した後