. parallel git -C {} status --short ::: ~/*/.git/..
그러나 Git 상태에는 저장소 이름이나 경로가 포함되어 있지 않으므로 git
실행된 명령을 인쇄 parallel
하거나 (이상적으로는) 입력( ~/[…]/.git/..
명령의 일부)을 인쇄한 다음 해당 저장소와 관련된 출력을 인쇄하는 방법이 필요합니다. 가능합니까? --verbose
명령은 인쇄하지만 그 옆에 있는 명령 출력은 인쇄하지 않으므로 충분하지 않습니다. --group
작업에서 줄을 함께 유지하지만 인쇄된 명령은 유지하지 않으므로 이 --verbose
두 가지로는 충분하지 않습니다.
답변1
노력하다:
parallel --tagstring {//} git -C {//} status --short ::: ~/*/.git
또는:
parallel --plus --tagstring {=s:$HOME.::';s:/.git::'=} git -C {//} status --short ::: ~/*/.git
또는:
parallel -v git -C {//} status --short ::: ~/*/.git
이는 정확히 귀하가 요청한 내용은 아니지만 수용 가능한 솔루션일 수 있습니다.
귀하의 요구 사항에 맞는 솔루션은 다음과 같습니다.
parallel "echo {};git -C {} status --short" ::: ~/*/.git/..
답변2
parallel --group --jobs=1 --verbose […]
명령을 인쇄한 다음 명령 출력을 인쇄하고 다음 명령을 계속합니다. 결점:
- 어떤 명령도 병렬로 실행하지 않으므로
for
루프만큼 느립니다. - 입력 내용 대신 전체 명령을 인쇄합니다.
--verbose
2>&1
stderr에 명령을 인쇄하므로 필터를 통해 출력을 실행 해야 합니다 .less