다음과 같은 스크립트가 있습니다.
#!/bin/csh
command 1 \
-f \"input1\" \
-l input2 -other_swithes1
command 2 \
-f \"input1\" \
-m input2 \
-l input3 -other_swithes1
command 3 \
-f \"input1\" \
-l input2 -other_swithes2
xargs
그렇다면 이러한 명령을 병렬로 실행하는 방법에 대해 알아보세요 . 다양한 변형을 시도했지만 모두 실패했습니다. 나는 실제로 스크립트를 작성하고 싶지 않습니다. -d 스위치와 -c를 사용하는 것이 가능할 것이라고 생각하지만 확실하지는 않습니다.
문제를 더욱 단순화하고 확장하기 위해 내가 가진 것은
cat file | grep -v "#.*" | sed -z 's/[\]\n/ /g' | xargs -I {} -n1 -P10 sh -c '{}'
작업이 완료되는 동안 특별한 문제가 발생하여 \"
삭제되고 있습니다. 그렇다면 이 문제를 해결할 단서는 없나요?
답변1
GNU Parallel을 사용하면 다음을 수행할 수 있습니다.
parallel -d '\n\n' < file.csh
공개: 저는 이 도구의 작성자입니다.
답변2
대답은 다음과 같습니다.
cat file | grep -v "#.*" | sed -z 's/[\]\n/ /g' | sed -z 's/\"/\\\\"/g' | xargs -I {} -n1 -P10 sh -c '{}'
감사해요