13

bash を使用して、*.xml ファイル以外のディレクトリ構造内のファイルを見つける方法は? 私はちょうど使用しようとしている

find . -regex ....

正規表現:

'.*^((?!xml).)*$'

しかし、期待した結果なし...

または、これを達成する別の方法がありますか、つまり、正規表現の一致なしですか?

4

6 に答える 6

20

find . ! -name "*.xml" -type f

于 2012-09-26T13:35:22.860 に答える
9
find . -not -name '*.xml'

トリックを行う必要があります。

于 2012-09-26T13:35:43.570 に答える
3

上記のソリューションよりもずさんで、find必要以上の作業を行いますが、

find . | grep -v '\.xml$'

また、これはソースコードのツリーですか?ツリーにすべてのソースコードと一部のXMLがあるかもしれませんが、ソースコードのみを取得したいですか?ackを使用している場合は、次のことができます。

ack -f --noxml
于 2012-09-26T13:52:57.653 に答える
2

バッシュで:

shopt -s extglob globstar nullglob
for f in **/*!(.xml); do 
    [[ -d $f ]] && continue
    # do stuff with $f
done
于 2012-09-26T15:18:13.890 に答える
1

次のように or リングを使用して行うこともできます。

find . -type f -name "*.xml" -o -type f -print

于 2013-01-16T19:15:43.050 に答える