我有一个文件pattern.txt
:
pattern1
pattern2
pattern3
pattern4
...
我还有另一个名为 text.txt
的文件,它包含一个巨大的带有空格、换行符等的随机字符串。
我想处理这两个文件的内容以便能够进行这些调用(-p
和 -t
的顺序无关紧要):
python3 main.py -p pattern1 -t 'text.text content'
python3 main.py -p pattern2 -t 'text.text content'
python3 main.py -p pattern3 -t 'text.text content'
... etc
这是我到目前为止所做的:
cat patterns.txt | xargs -i -n1 python main.py -p {} -t "how are you doing"
最佳答案
使用xargs -a
为pattern.txt
中的每一行执行一次main.py
。
xargs -a pattern.txt -I {} python3 main.py -p {} -t "$(< text.txt)"
您还可以使用 -P
并行运行脚本的多个副本。
如果 main.py
是可执行的并且有一个 shebang 行,例如 #!/usr/bin/env python3
那么最好省略显式的 python3
调用。让脚本控制自己的解释器:
xargs -a pattern.txt -I {} ./main.py -p {} -t "$(< text.txt)"
如果您愿意,您也可以使用手卷循环来完成此操作。
text=$(< text.txt)
while IFS= read -r pattern; do
./main.py -p "$pattern" -t "$text"
done < pattern.txt
关于linux - 将 2 个文件的内容通过管道传递给 bash 中的 2 个不同参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54046486/