2011-06-28 7 views
2

私はメイクファイル内のテキストを抽出するために、次のコマンドを書いています: -Makeでperl one linerを書くには?

@awk '/Exported Layer/,/Total Polygons/' out_compare.err | perl -lane '$el=$F[3] if(/Exported Layer/); print "$el: $f[3]" if (/Total Polygons/);' | cat 

しかし、次のエラー与えている: -

は-e 1行目でスカラー割り当てに一定の項目を変更できません。 、near "]" コンパイルエラーのために-eの実行が中止されました。

あなたは何か提案したいですか? :-)

+0

私のために働く...なぜそれを猫にパイプ? out_compare.err(エクスポートされたレイヤーとポリゴンの間のもの)を追加できますか?perlのバージョン? –

+0

実行した場所:コマンドラインまたはmakefile? –

+1

'perl'を' echo'に置き換えて、どのように文字化けしているのか見てみましょう。 – ikegami

答えて

5

Makeはコマンドでシェルクォートを気にしないので、Perlスニペットの$文字はmake変数$e$Fと解釈されます。これらの変数はあなたのmakefileには存在せず、あなたが見ているPerl構文エラーにつながる空として展開されています。

あなたはこのように、メイクから$文字をエスケープする必要があります。また、the GNU Make manual

... perl -lane '$$el=$$F[3] if(/Exported Layer/); ... 

を参照してください。

関連する問題