単純な正規表現と一致します。

単純な正規表現と一致します。

txt で終わるファイルで (tt\d{1,10}) を一致させる必要があります。

私はgrepとack-grepを試しましたが、結果はありませんでした。

ack-grep -G \.txt$ -g "(tt\d{1,10})"

ベストアンサー1

を使用すると、ack-grep以下を探しているようです。

ack-grep -uhoG '\.txt$' 'tt\d{1,10}'

findこれは "end up with" コマンドとほぼ同じで、次のように最適化できます。

find . -name '*.txt' -exec grep -Eo 'tt[0-9]{1,10}' {} +

greptxtファイルごとに1つのコマンドを実行したくない場合。

-type fディレクトリ、シンボリックリンク、またはデバイスからテキストを検索したくない場合は、aを追加することも検討できます。 (もちろん名前がほとんどないことに同意するが(シンボリックリンクを除く)*.txt

また、-oオプションはgrepGNUによって異なり、GNU grepには-rディレクトリを再帰的に検索するオプションもありますが、以前のバージョンのGNU grepはディレクトリへのシンボリックリンクでリンクされているため、最新findバージョンがない場合は注意してくださいgrep

おすすめ記事