sedを使用して特定の行文字列を並列に置き換えると、構文エラーが発生します。{= s/_1/_2/ =}?

sedを使用して特定の行文字列を並列に置き換えると、構文エラーが発生します。{= s/_1/_2/ =}?

次のファイルを含むディレクトリがあります。

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オプション入力は認識されます-1が、オプション入力は認識されません-2。明らかにオプションの初期部分を探しているようです-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が指摘したように、私がインストールしたパラレルバージョンは私が使っているsynatxよりも古いです(GNUパラレル - ニュース)。

参考までに、GNUパラレルインデックス最も古いバージョンを一番上にリストし、最新バージョンを一番下にリストします。新しいワークスペースからパラレルをダウンロードしたときにそれを認識できず、最新バージョンであることを知って上部の.tarをインポートしました。

関連情報