unixの正規表現をPerl言語に翻訳して、特定の条件に関連する特定のファイルを取得したいとします。Perlの正規表現がすべてのディレクトリをループして特定のファイルを取得する
私はディレクトリ/nfs/cs/test_case/y2016
のcall totalResult.plにPerlスクリプトを持っているとします。このディレクトリには、testWeek1、testWeek2、testWeek3 ...などのディレクトリもたくさんあります。各ディレクトリには、testCase1、testCase2、testCase3 ...などのサブディレクトリがあります。各testCaseディレクトリにはファイル呼び出し.test_resultが含まれ、結果を成功または失敗として記録します。
だから私は、たとえば、UNIXコマンドを使用してファイル情報を取得することができます。
wc /nfs/cs/test_case/y2016/testWeek1/testCase1/.test_result
失敗で各ディレクトリおよびサブディレクトリのtest_resultsを取得したい場合、私は現在からそれを行うことができますそれは私の出力が得られます
grep -ri "fail" */*/.test_result
:UNIXでのパス/nfs/cs/test_case/y2016
よう
/nfs/cs/test_case/y2016/testWeek1/testCase1/.test_result:fail
/nfs/cs/test_case/y2016/testWeek3/testCase45/.test_result:fail
/nfs/cs/test_case/y2016/testWeek4/testCase12/.test_result:fail
.
.
...etc
どのようにしてPerlスクリプトを書くだけで実現できますか?perl testCase.pl
のコマンドを実行して、同じ出力を得ることができますか?私はUnixとPerlで新しいです、誰も助けることができますか?
助けてくれてありがとう、それは仕事です、私はグロブとチャンプの使用は何ですか? – helloworld1234
globは、*がワイルドカードのパターンからファイルをリストア(ファイルのリストを作成)します。 chompは行の終わりから改行を削除します(そこには何もありません) – MERM
私はchompを使って、 "\ n"で終わる行と同じ行を処理します。 "\ n"なし。 – AnFi