
パイプのない最初の例は空白を返します。
find /tmp/txz/httperf/httperf-20210403git/ -regextype posix-egrep -regex [A-Z][A-Z]$
2番目は私が欲しいものを返します。すべてのファイルは大文字になっています。なぜfindコマンドは何も返さないのですか?
find /tmp/txz/httperf/httperf-20210403git/ |egrep [A-Z][A-Z]$
/tmp/txz/httperf/httperf-20210403git/.git/refs/remotes/origin/HEAD
/tmp/txz/httperf/httperf-20210403git/.git/logs/refs/remotes/origin/HEAD
/tmp/txz/httperf/httperf-20210403git/.git/logs/HEAD
/tmp/txz/httperf/httperf-20210403git/.git/HEAD
/tmp/txz/httperf/httperf-20210403git/NEWS
/tmp/txz/httperf/httperf-20210403git/COPYRIGHT
/tmp/txz/httperf/httperf-20210403git/AUTHORS
/tmp/txz/httperf/httperf-20210403git/TODO
/tmp/txz/httperf/httperf-20210403git/src/lib/README
また、正規表現型に対してposix-extendedとposix-basicを試しましたが、空の結果が返されます。
答え1
POSIXがfind
指定されていないため、-regex
GNUと仮定しますfind
。
テスト:
-regex expr
テスト:-iregex expr
フルファイル名が正規表現と一致する場合は真ですexpr
。これは検索ではなくフルパスの一致です。[… ]
(源泉、強調内)
を使用する必要があります-regex '.*[A-Z][A-Z]'
。シェルによる拡張を防ぐために、式は一重引用符で囲まれています。