我使用一些命令行参数调用 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/^/--/'
将行首替换为--