bash を使用して、*.xml ファイル以外のディレクトリ構造内のファイルを見つける方法は? 私はちょうど使用しようとしている
find . -regex ....
正規表現:
'.*^((?!xml).)*$'
しかし、期待した結果なし...
または、これを達成する別の方法がありますか、つまり、正規表現の一致なしですか?
find . ! -name "*.xml" -type f
find . -not -name '*.xml'
トリックを行う必要があります。
上記のソリューションよりもずさんで、find
必要以上の作業を行いますが、
find . | grep -v '\.xml$'
また、これはソースコードのツリーですか?ツリーにすべてのソースコードと一部のXMLがあるかもしれませんが、ソースコードのみを取得したいですか?ackを使用している場合は、次のことができます。
ack -f --noxml
バッシュで:
shopt -s extglob globstar nullglob
for f in **/*!(.xml); do
[[ -d $f ]] && continue
# do stuff with $f
done
次のように or リングを使用して行うこともできます。
find . -type f -name "*.xml" -o -type f -print