如何将参数从xargs传递到python脚本?
我有如何将参数从xargs传递到python脚本?,python,bash,xargs,Python,Bash,Xargs,我有command.list文件,其中包含python脚本my_script.py的命令参数,该脚本有3个参数 其中一行看起来像: -sc 4 看起来它不是这样工作的,因为参数应该被拆分 cat command.list | xargs-I{}python3 my_script.py{} 如何将字符串拆分为pararmeters并将其传递给python脚本?不确定,您正在使用xargs-I{}python3 my_script.py{}执行什么操作。 但是你在找什么 $ cat file <
command.list
文件,其中包含python脚本my_script.py
的命令参数,该脚本有3个参数
其中一行看起来像:
-sc 4
看起来它不是这样工作的,因为参数应该被拆分
cat command.list | xargs-I{}python3 my_script.py{}
如何将字符串拆分为pararmeters并将其传递给python脚本?不确定,您正在使用
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
$cat文件
-sc 4
....
-sc 4
$while read-r路径1路径2不需要;执行python3 my_script.py“$path2”;完成不确定,您正在尝试使用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
$cat文件
-sc 4
....
-sc 4
$while read-r路径1路径2不需要;执行python3 my_script.py“$path2”;完成来自man xargs
-我替换str
用从标准输入读取的名称替换初始参数中出现的Replace str。而且,无引号的空格不终止输入项;分隔符是换行符。表示-x和-L 1
你想要的是
xargs -L1 python3 my_script.py
顺便说一下:cat
不是必需的。使用以下命令之一
< command.list xargs -L1 python3 my_script.py
来自man xargs的-I
文档
-我替换str
用从标准输入读取的名称替换初始参数中出现的Replace str。而且,无引号的空格不终止输入项;分隔符是换行符。表示-x和-L 1
你想要的是
xargs -L1 python3 my_script.py
顺便说一下:cat
不是必需的。使用以下命令之一
< command.list xargs -L1 python3 my_script.py
那cat command.list | xargs-L 1 python3 my_script.py
呢?这将一次向脚本传递一行(-L 1
)。关于cat command.list | xargs-L 1 python3 my_script.py
?这将一次将一行(-l1
)传递给脚本。是的,它可以工作:同时读取-r路径1路径2;python3是否显示\u mouth\u地标.py$path1$path2-sc 4;doneYes,它工作:读取-r路径1路径2;python3是否显示\u mouth\u地标.py$path1$path2-sc 4;是否需要-x
选项?@mrglud My bad,不需要-L
自动启用-x
。即使没有,你也可能不需要它。如果由于ARG_MAX
限制,当前线路中的所有选项不能在一次调用中使用,则中止和警告是一种保护措施。例如,在seq-s''9999999 | xargs-xL1 echo
中,您会收到一条警告,一行中的参数太多,无法容纳单个调用。为什么需要-x
选项?@mrglud My bad,不需要-L
自动启用-x
。即使没有,你也可能不需要它。如果由于ARG_MAX
限制,当前线路中的所有选项不能在一次调用中使用,则中止和警告是一种保护措施。例如,在seq-s''999999 | xargs-xL1 echo
中,您会收到一条警告,指出一行中的参数太多,无法装入单个调用。