GNU 병렬
GNU parallel![]() | |
개발자 | GNU 프로젝트 |
---|---|
안정적 해제 | 20210422[1] / 2021년 4월 22일; 전 |
리포지토리 | |
기록 위치 | 펄 |
운영 체제 | GNU |
유형 | 효용 |
면허증 | GPLv3 |
웹사이트 | www![]() |
GNU parallel은 리눅스 및 기타 유닉스 유사 운영 체제를 위한 명령줄 기반 유틸리티로, 사용자가 셸 스크립트나 명령을 병렬로 실행할 수 있다.GNU parallel은 Perl에서 Ole Tange에 의해 쓰여진 무료 소프트웨어다.그것은 GPLv3의 조건에 따라 이용할 수 있다.[2]
사용법
예를 들어 셸 루프를 교체하는 것이 가장 일반적인 사용법이다.
x를 읽는 동안; do_something "$x" do_down process_output
의 형태로
< 병렬 do_something process_output
그 파일이 있는 곳에list
에 대한 인수를 포함함do_something
그리고 어디에process_output
비어 있을 수도 있다.
병렬을 사용하는 스크립트는 종종 pexec을 사용하는 스크립트보다 읽기 쉽다.
프로그램 병렬 기능도 제공됨
- 병렬 실행 작업의 출력이 함께 실행되지 않도록 표준 출력 및 표준 오류의 그룹화
- 입력과 동일한 순서로 유지되도록 출력 순서 유지
- 공백, 단일 따옴표, 이중 따옴표, 앰퍼샌드 및 UTF-8 인코딩 문자와 같은 특수 문자를 포함하는 파일 이름 처리
기본적으로 병렬은 CPU 코어가 있는 만큼 많은 작업을 병렬로 실행한다.
예
. -name "*.foo" 병렬 grep bar를 찾으십시오.
위와 같은 평행은 다음과 같다.
. -name "*.foo" -exec grep bar {} +
현재 디렉터리의 모든 파일 및 이름이 끝나는 하위 디렉터리에서 검색.foo
문자열의 발생에 대해 bar
. 파일 이름에 새 줄이 포함되지 않는 한 병렬 명령은 예상대로 작동한다.이러한 제한을 피하기 위해 다음을 사용할 수 있다.
. -name "*.foo" -print0 parallel -0 grep bar 찾기
위의 명령은 null 문자를 사용하여 파일 이름을 구분한다.
. -name "*.foo" parallel -X mv {} /tmp/trash 찾기
위의 명령은 확장된다.{}
명령줄 길이가 허용하는 수만큼 인수를 사용하여 필요한 경우 병렬 작업 간에 인수를 균등하게 분산하십시오.이렇게 하면 실행 시간보다 완료하는 데 시간이 덜 걸리는 단명 명령의 프로세스 오버헤드를 줄일 수 있다.
. -maxdeep 1 -type f -name "*.ogg" 병렬 -X -r cp -v -p {} /home/media 찾기
위의 명령은 다음과 같다.
cp -v -p *.ogg /home/media
그러나, 이전 명령어는find
/parallel
/cp
*.ggg의 확장이 쉘에 비해 너무 크면 더 효율적이며 오류로 중단되지 않는다.
![]() | 위키미디어 커먼즈에는 GNU 병렬과 관련된 미디어가 있다. |
참고 항목
참조
- ^ Tange, Ole (22 Apr 2021). "GNU Parallel 20210422 ('Ever Given') released [stable]". parallel (Mailing list).
- ^ "GNU Parallel". GNU.org.