我有command.list
个文件,该文件包含我的python脚本my_script.py
的命令参数,其中有3个参数。
其中一行如下所示:
<path1> <path2> -sc 4
看起来像这样不能正常工作,因为应该拆分参数?
cat command.list | xargs -I {} python3 my_script.py {}
如何将字符串拆分为参数并将其传递给python脚本?
答案 0 :(得分:1)
不确定,您打算在那里使用xargs -I {} python3 my_script.py {}
做什么。
但是你在找吗,
$ cat file
<path1> <path2> -sc 4
....
<path1n> <path2n> -sc 4
$ while read -r path1 path2 unwanted unwanted; do python3 my_script.py "$path2" ; done<file
答案 1 :(得分:1)
-I
中man xargs
的文档
-I replace-str
将初始参数中出现的replace-str替换为从标准输入中读取的名称。同样,未加引号的空格不会终止输入的项目。相反,分隔符是换行符。表示-x和-L 1。
您想要的是
xargs -L1 python3 my_script.py
顺便说一句:cat
是不必要的。使用以下命令之一
< command.list xargs -L1 python3 my_script.py
xargs -a command.list -L1 python3 my_script.py
答案 2 :(得分:1)
cat command.list | xargs -L 1 python3 my_script.py
呢?这将一次向脚本传递一行(-L 1
。