나는 ls
다음과 같이 발견된 파일을 처리합니다.
ls /folder/ | parallel -j20 ./command {}
그런데 직장 번호도 통과해야 해요. 나는 노력했다
ls /folder/ | parallel -j20 ./command {1} {2} ::: {1..20}
ls /folder/ | parallel -j20 ./command {} {} ::: {1..20}
하지만 작동하지 않습니다. {#}
직장번호 도 전달해 봤습니다 .
답변1
대체 문자열은 {#}
정확히 필요한 것이어야 합니다. 예를 들어, 주어진
$ ls
file1 'file2 with spaces' 'file3'$'\n''with'$'\n''newlines' file4 file5
그 다음에
parallel --null echo {#} {} ::: *
1 file1
2 file2 with spaces
3 file3
with
newlines
4 file4
5 file5
또는 ARG_MAX 제한을 초과할 만큼 충분한 파일이 있는 경우 다음을 사용할 수 있습니다.
printf '%s\0' * | parallel --null echo {#} {}
답변2
당신이 무엇을 하고 싶은지 명확하지 않습니다. 어쩌면 그들 중 하나일까요?
ls /folder/ | parallel -j20 ./command {1} {2} :::: - ::: {1..20}
ls /folder/ | parallel -j20 ./command {1} {2} :::: - :::+ {1..20}
ls /folder/ | parallel -j20 ./command {1} {#}
ls /folder/ | parallel -j20 ./command {1} {%}