2016-06-30 6 views
2

私はこのようなfindコマンドがあります。このようなfindコマンドでregexをnameに使用するにはどうすればいいですか?

find /root/newdir/ -mindepth 1 -maxdepth 1 -type f 

出力:

/root/newdir/test.log 
/root/newdir/test2.log 
/root/newdir/tmp_test3.log 
/root/newdir/test.zip 

を私はtestと終了.logを開始するファイルを検索する必要があります。時には複雑な正規表現も必要になることがあります。私はこのように私例えば-regexを試してみたが、動作しません:

find /root/newdir/ -mindepth 1 -maxdepth 1 -type f -regex "^test*.log$" 

は、どのように私はfindコマンドで^ $文字のような正規表現を使用することができますか?

答えて

2

出力は/path/to/file/test2.logであるため、行の先頭は/ path/to/fileのようにする必要があるため、^は使用できません。あなたは何ができるか。この場合

は次のとおりです。

find . -mindepth 1 -maxdepth 1 -type f -regex ".*/temp[^\/]*log$"

今、あなただけの必要な正規表現で/最後の後にファイルを見つけることができます。

関連する問題