我有一个包含如下文件的目录:
id1_1.txt
id1_2.txt
id2_1.txt
id2_2.txt
我需要将这些文件作为一对(例如id1_1.txt
和id1_2.txt
)传递给my_script
.
这是我认为可行的
parallel -j +0 -X python my_script.py -1 {} -2 {= s/_1/_2/ =} -o /output/dir/good /output/dir/bad ::: /my/dir/*_1.txt
其中-1
是以 结尾的文件_1.txt
,以及-2
以 结尾的文件_2.txt
。
my_script
识别 option 的输入-1
,但不识别 option 的输入-2
。显然,它只是寻找 option 的初始部分-2
:
No such file or directory: '{='
我尝试添加引号,但仍然出现相同的错误。
并行版本:
$ parallel --version
GNU parallel 20120522
Copyright (C) 2007,2008,2009,2010,2011,2012 Ole Tange and Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
GNU parallel comes with no warranty.
Web site: http://www.gnu.org/software/parallel
When using GNU Parallel for a publication please cite:
O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47.
答案1
正如steeldriver指出的,我安装的parallel版本早于我正在使用的synatx(GNU 并行 - 新闻)。
作为旁注,GNU 并行索引在顶部列出最旧的版本,在底部列出最新版本。当我在新工作区下载并行时,我没有注意到这一点并抓住了顶部的 .tar 以为它是最新版本。