「def test」を含むすべてのPythonテストスクリプトをリストしたいと思います。
コマンドラインは機能しませんが、単一のコマンドは機能します。
find . -name "*.py" | grep "def test"
ベストアンサー1
努力する:
grep -r --include '*.py' 'def test'
-r
grepにファイルを再帰的に検索するように指示する--include '*.py'
で終わる名前だけを確認するようにgrepに指示します.py
。
--include
どちらもこのオプションをサポートします。GNU(Linux) grepそしてMacOS grep
パイプライン法に関する議論
次のコマンドでは、findは見つかったファイルの名前をgrepの標準入力に渡します。
find . -name "*.py" | grep "def test"
ここでの問題は、grepが標準入力を検索するテキストとして扱うことです。したがって、唯一の出力は対応するファイルです。名前(コンテンツと反対)にはdef test
。
たとえば、空のファイルを作成しましょう。
$ touch 'def test.py'
パイプラインコマンドを実行します。
$ find . -name "*.py" | grep "def test"
./def test.py
このコマンドは、名前に基づいてファイルを検索します。その内容はレビューされたことがありません。