0

私は見つけるのがかなり新しく、正規表現は常に私にとってトリッキーでした。私は誰かが私のためにこれをすぐに修正できることを望んでおり、おそらくこれが私がそうすべきだと思う理由を教えてくれるかもしれません(特定のタイプのファイルを除外することが目標です):

find . -type f \( -name "*" ! -name "*\.(vm | jar | class | htm | html | jpg | gif)$" \)

前もって感謝します。

4

3 に答える 3

2

私はfindコマンドの構文に精通していませんが、特定の拡張子を持つファイルを照合するには、次のものが必要になります。

".*\.(vm|jar|class|htm|html|jpg|gif)$"

スペースを削除し、先頭にドットを追加しました。

于 2012-12-20T14:57:24.987 に答える
2

質問はUnixシェルに関するもののようです...

とにかく、私がよく知っている正規表現側では、式にある空白を削除する必要があると思います。

"\.(vm|jar|class|html?|jpg|gif)$"

私はあなたのコマンド自体の有効性を保証しません...

于 2012-12-20T14:58:15.640 に答える
1

findはデフォルトですべての名前を検索すると確信しているので、ここでは余分な " -name"*" "は必要ありません。

regexp側では、探している答えが見つかったように見えますが、正規表現が原因で問題が発生している場合に、 findORフラグ(-または-o)が付いていることを知りたい場合があります。トラブル:

find . -type f ! \( -name "*.vm" -o -name "*.jar" -o -name ".class" \)

欠点は、書くのが明らかに長いことです...

manfindを確認することを忘れないでください

幸運を

于 2012-12-20T15:35:57.490 に答える