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를 가져왔습니다.

관련 정보