Erro de sintaxe ao usar o sed para substituir uma string específica da linha em paralelo: {= s / _1 / _2 / =}?

1

Eu tenho um diretório com arquivos semelhantes a este:

id1_1.txt
id1_2.txt
id2_1.txt
id2_2.txt

Eu preciso passar esses arquivos como um casal (por exemplo, id1_1.txt e id1_2.txt ) para my_script .

Veja o que eu achei que funcionaria

parallel -j +0 -X python my_script.py -1 {} -2 {= s/_1/_2/ =} -o /output/dir/good /output/dir/bad ::: /my/dir/*_1.txt

onde -1 seria arquivos terminados em _1.txt e -2 seria seu parceiro terminando com _2.txt .

my_script reconhece a entrada da opção -1 , mas não a entrada da opção -2 . Claramente, ele está apenas procurando pela parte inicial da opção -2 :

 No such file or directory: '{='

Eu tentei adicionar cotações, mas ainda recebo o mesmo erro.

Versão paralela:

$ 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.
    
por user8121557 22.07.2018 / 19:21

1 resposta

0

Como a steeldriver apontou, a versão do paralelismo que eu tinha instalado pré-datava a synatx que eu estava usando ( GNU paralelo - NOTÍCIAS .

Como uma nota lateral, o índice paralelo GNU lista as versões OLDEST na parte superior e a mais nova na parte inferior . Quando fiz o download paralelo no meu novo espaço de trabalho, não prestei atenção a isso e peguei o top .tar pensando que era a versão mais recente.

    
por 25.07.2018 / 17:39