如何将参数从xargs传递到python脚本?

时间:2019-02-04 07:01:58

标签: python bash xargs

我有command.list个文件,该文件包含我的python脚本my_script.py的命令参数,其中有3个参数。

其中一行如下所示:

<path1> <path2> -sc 4

看起来像这样不能正常工作,因为应该拆分参数?

cat command.list | xargs -I {} python3 my_script.py {}

如何将字符串拆分为参数并将其传递给python脚本?

3 个答案:

答案 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)

-Iman 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