私はこのようないくつかの例外クラスを持っています(PHPですが、今は問題ではありません):
class FileNotFoundException extends OtherException {
const DEFAULT_FILE_NOT_FOUND_ERROR_CODE = 159;
public function __construct($code=self::DEFAULT_FILE_NOT_FOUND_ERROR_CODE) {
parent::__construct($code);
}
}
問題
すべてのファイルからエラーコードを取得して配列に格納し(インデックスはエラーコードで、値は定数名です)、順番に出力する必要があります。
チップ
- すべてのファイルは
.php
ファイルです - 一定のエラーコードは常に次のようになります
const DEFAULT_[A-Z_]_ERROR_CODE = [0-9]+;
- このような配列に格納しようとしました
array[159]="DEFAULT_FILE_NOT_FOUND_ERROR_CODE";
私が何をした
私がやろうとしたのは、bashscriptingの知識がほとんどないので、このphp例外ファイルをすべて解析し、定数のみを取得するスクリプトです。DEFAULT_[...]_ERROR_CODE = "number";
これは、それを取得しようとして いる私のscript.shです。
#! /bin/bash
sed -n "s/const \(DEFAULT[A-Z_]*\) = \([0-9]*\);/$array[\2]=\1;/p" $1
そして私がこれを行う場合:
script.sh < FileNotFoundException.php
出力します[159]=DEFAULT_FILE_NOT_FOUND_ERROR_CODE;
次に、次のように変数「配列」をそこに配置しようとしました。
eval('$array(`sed -n "s/const \(DEFAULT[A-Z_]*\) = \([0-9]*\);/$array[\2]=\1;/p" $1`)')
および他のいくつかの組み合わせですが、成功しませんでした。
これをstackOverflowに投稿する理由
私はそれを解決することが可能かどうか、そしてどのようにそれを行うことができるか、あるいはそれを行う他の方法があるかどうかを知りたいと思いました。
ありがとう