検索:egrepで正規表現が機能しないのはなぜですか?

検索:egrepで正規表現が機能しないのはなぜですか?

パイプのない最初の例は空白を返します。

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指定されていないため、-regexGNUと仮定しますfind

テスト:-regex expr
テスト:-iregex expr
フルファイル名が正規表現と一致する場合は真ですexprこれは検索ではなくフルパスの一致です。[… ]

源泉、強調内)

を使用する必要があります-regex '.*[A-Z][A-Z]'。シェルによる拡張を防ぐために、式は一重引用符で囲まれています。

おすすめ記事