いくつかのコマンドラインパラメータを使用してPythonスクリプトを呼び出します。たとえば、次のようになります。
python3 script.py --run 1 --filepath "this/file/dir"
ここで、以下を使用して構成ファイルのパラメーターを解析しようとしています。
grep -v '^#' ${THIS_FILE_DIR}/model.conf | sed 's/=/ /' | xargs -I% echo "--%"
これで私が欲しい文字列が生成されます。
--run 1
--filepath this/file/dir
おおよそ次のように、この文字列をPythonコマンドに動的に入力する方法はありますか?
python3 script.py $(grep -v '^#' ${THIS_FILE_DIR}/model.conf | sed 's/=/ /' | xargs -I% echo "--%")
参照用のConfファイル
# vars
run=1
filepath=this/file/dir
ベストアンサー1
試してから数多くのオプションがありますsed
。おすすめです。
python3 script.py $(sed -e '/^#/d' -e 's/=/ /' -e 's/^/--/' ${THIS_FILE_DIR}/model.conf )
どこ
-e
複数のsedコマンドを指定するために使用されます。'/^#/d'
次に始まる行の削除#
's/^/--/'
行の先頭を次に置き換えます。--