0

私は複数レベルのディレクトリ構造を持っており、任意のディレクトリのsam.png、pam.jpegなどのファイルを除いて、すべて(png、jpegファイル)を一覧表示したい

最終的に、すべてのファイルを次のようにリストしたい

a/b/c/d*.jpg (inlude all jpg, but I want to exclude sam.png from a/b/c/d directory)

a/b/c/d*.jpeg

a/b/c/d*.png

a/e/f/k/h/*.png

...等々

それ、どうやったら出来るの?

4

2 に答える 2

3

以下を使用regex-

.(jpg|jpeg|gif|png)$(?<!sam.png|pam.jpeg)

これは否定的な後ろ向きを使用します。

于 2012-10-23T13:57:21.040 に答える
0

あなたの問題の文脈について完全にはわかりません。

ただしfind .、ディレクトリの下のファイルを一覧表示するために使用できます (再帰的)。

egrep正規表現で結果をフィルタリングするために使用します。

そしてegrep -v、否定的な方法でフィルタリングするために使用します(一致しない場合は残ります)。

だから私は、このようなものが仕事をするかもしれないと思います:

find . | egrep "*.(jpg|png)$" | egrep -v "*.(sam.png)"
于 2012-10-23T12:39:30.187 に答える