Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Biểu tượng yêu thích OnWorks

song song - Trực tuyến trên đám mây

Chạy song song trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh song song có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


song song - xây dựng và thực thi các dòng lệnh shell từ đầu vào chuẩn song song

SYNOPSIS


song song, tương đông [tùy chọn] [lệnh [đối số]] <list_of_arguments

song song, tương đông [tùy chọn] [lệnh [tranh luận]] ( ::: đối số | :::: argfile (các)) ...

song song, tương đông --semaphore [tùy chọn] lệnh

#! / usr / bin / song song --shebang [tùy chọn] [lệnh [tranh luận]]

MÔ TẢ


GNU song song, tương đông là một công cụ shell để thực hiện các công việc song song bằng cách sử dụng một hoặc nhiều máy tính. MỘT
công việc có thể là một lệnh đơn hoặc một tập lệnh nhỏ phải được chạy cho mỗi dòng trong
đầu vào. Đầu vào điển hình là danh sách tệp, danh sách máy chủ lưu trữ, danh sách người dùng, danh sách
URL hoặc danh sách các bảng. Một công việc cũng có thể là một lệnh đọc từ một đường ống. GNU
song song, tương đông sau đó có thể chia đầu vào thành các khối và chuyển một khối thành mỗi lệnh trong
song song, tương đông.

Nếu bạn sử dụng xargs và tee ngày hôm nay, bạn sẽ thấy GNU song song, tương đông rất dễ sử dụng như GNU song song, tương đông
được viết để có các tùy chọn tương tự như xargs. Nếu bạn viết các vòng lặp trong shell, bạn sẽ tìm thấy
GNU song song, tương đông có thể thay thế hầu hết các vòng lặp và làm cho chúng chạy nhanh hơn bằng cách chạy
một số công việc song song.

GNU song song, tương đông đảm bảo đầu ra từ các lệnh là đầu ra giống như bạn sẽ có
bạn chạy các lệnh một cách tuần tự. Điều này làm cho nó có thể sử dụng đầu ra từ GNU song song, tương đông
làm đầu vào cho các chương trình khác.

Đối với mỗi dòng GNU đầu vào song song, tương đông sẽ thực hiện lệnh với dòng là đối số. Nếu không
lệnh được đưa ra, dòng đầu vào được thực thi. Một số dòng sẽ được chạy song song.
GNU song song, tương đông thường có thể được sử dụng để thay thế cho xargs or làm sao | bash.

Độc giả hướng dẫn
Bắt đầu bằng cách xem các video giới thiệu để biết phần giới thiệu nhanh:
http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Sau đó nhìn vào THÍ DỤs sau danh sách LỰA CHỌN. Điều đó sẽ cung cấp cho bạn một ý tưởng về những gì
GNU song song, tương đông có khả năng.

Sau đó, dành một giờ đi bộ qua hướng dẫn (người đàn ông song song_tutorial). Dòng lệnh của bạn
sẽ yêu bạn vì nó.

Cuối cùng, bạn có thể muốn xem phần còn lại của sách hướng dẫn này nếu bạn có nhu cầu đặc biệt không
đã được bảo hiểm.

LỰA CHỌN


lệnh Lệnh thực hiện. Nếu như lệnh hoặc các đối số sau chứa thay thế
chuỗi (chẳng hạn như {}) mọi trường hợp sẽ được thay thế bằng đầu vào.

If lệnh được đưa ra, GNU song song, tương đông giải quyết các nhiệm vụ tương tự như xargs. Nếu lệnh is
không được cấp GNU song song, tương đông sẽ cư xử tương tự như làm sao | sh.

Sản phẩm lệnh phải là một tệp thực thi, một tập lệnh, một lệnh soạn thảo hoặc một hàm.

Nếu đó là một hàm Bash, bạn cần xuất khẩu -f chức năng đầu tiên. Để sử dụng bí danh
sao chép toàn bộ môi trường như được mô tả dưới đây --env Và sử dụng env_song song thay vì
of song song, tương đông.

Nếu đó là một hàm zsh, bạn sẽ cần sử dụng hàm trợ giúp này xuất khẩu đến
xuất và đặt $ PARALLEL_SHELL thành bash:

function exportf () {
export $ (echo $ 1) = "` whence -f $ 1 | sed -e "s / $ 1 //" `"
}

function my_func () {
echo $ 1;
echo "xin chào";
}

xuất khẩu my_func
PARALLEL_SHELL =/ bin / bash song song "my_func {}" ::: 1 2

Lệnh không được chứa ký tự \ 257 (macron: X).

{} Dòng đầu vào. Chuỗi thay thế này sẽ được thay thế bằng một dòng đầy đủ được đọc từ
Nguồn vào. Nguồn đầu vào thường là stdin (đầu vào tiêu chuẩn), nhưng cũng có thể
được cho với -a, :::, hoặc là ::::.

Chuỗi thay thế {} có thể được thay đổi bằng -I.

Nếu dòng lệnh không chứa chuỗi thay thế thì {} sẽ được thêm vào
dòng lệnh.

{.} Dòng nhập không có phần mở rộng. Chuỗi thay thế này sẽ được thay thế bằng chuỗi
đầu vào với phần mở rộng đã bị xóa. Nếu dòng đầu vào chứa . sau cái cuối cùng /
cuối cùng . cho đến khi kết thúc chuỗi sẽ bị xóa và {.} sẽ được thay thế
với phần còn lại. Ví dụ foo.jpg trở thành foo, subir / foo.jpg trở thành Subir / foo,
sub.dir / foo.jpg trở thành sub.dir / foo, sub.dir / thanh vẫn còn sub.dir / thanh. Nếu
dòng đầu vào không chứa . nó sẽ không thay đổi.

Chuỗi thay thế {.} có thể được thay đổi bằng --er.

Để hiểu các chuỗi thay thế, hãy xem {}.

{/} Tên cơ sở của dòng đầu vào. Chuỗi thay thế này sẽ được thay thế bằng đầu vào
với phần thư mục bị loại bỏ.

Chuỗi thay thế {/} có thể được thay đổi bằng --basenamereplace.

Để hiểu các chuỗi thay thế, hãy xem {}.

PHƯƠNG PHÁP Tên dòng đầu vào. Chuỗi thay thế này sẽ được thay thế bằng ký tự của
dòng đầu vào. Nhìn thấy nói cho tôi(1).

Chuỗi thay thế PHƯƠNG PHÁP có thể được thay đổi bằng --dirnamereplace.

Để hiểu các chuỗi thay thế, hãy xem {}.

{/.} Tên cơ sở của dòng đầu vào không có phần mở rộng. Chuỗi thay thế này sẽ là
được thay thế bằng đầu vào với phần thư mục và phần mở rộng bị loại bỏ. Nó là một
sự kết hợp của {/}{.}.

Chuỗi thay thế {/.} có thể được thay đổi bằng --basenameextensionthay thế.

Để hiểu các chuỗi thay thế, hãy xem {}.

{#} (thử nghiệm alpha)
Số thứ tự của công việc sẽ chạy. Chuỗi thay thế này sẽ được thay thế bằng
số thứ tự của công việc đang được chạy. Nó chứa cùng một số như
$ PARALLEL_SEQ.

Chuỗi thay thế {#} có thể được thay đổi bằng --seqreplace.

Để hiểu các chuỗi thay thế, hãy xem {}.

{%} (thử nghiệm alpha)
Số vị trí công việc. Chuỗi thay thế này sẽ được thay thế bằng vị trí công việc
đánh số từ 1 đến số lượng công việc cần chạy song song. Sẽ không bao giờ có 2
các công việc đang chạy cùng một lúc với cùng một số vị trí công việc.

Chuỗi thay thế {%} có thể được thay đổi bằng -- thay thế.

Để hiểu các chuỗi thay thế, hãy xem {}.

{n} Đối số từ nguồn đầu vào n hoặc là nđối số thứ. Vị trí thay thế này
chuỗi sẽ được thay thế bằng đầu vào từ nguồn đầu vào n (khi được sử dụng với -a or
::::) hoặc với nđối số thứ '(khi được sử dụng với -N). Nếu n là tiêu cực nó đề cập đến
đến nđối số cuối cùng.

Để hiểu các chuỗi thay thế, hãy xem {}.

{n.} Đối số từ nguồn đầu vào n hoặc là nđối số thứ 'không có phần mở rộng. Nó là một
sự kết hợp của {n}{.}.

Chuỗi thay thế vị trí này sẽ được thay thế bằng đầu vào từ đầu vào
nguồn n (khi được sử dụng với -a or ::::) hoặc với nđối số thứ '(khi được sử dụng với
-N). Đầu vào sẽ bị xóa phần mở rộng.

Để hiểu các chuỗi thay thế vị trí, hãy xem {n}.

{n/} Tên cơ sở của đối số từ nguồn đầu vào n hoặc là nđối số thứ. Nó là một
sự kết hợp của {n}{/}.

Chuỗi thay thế vị trí này sẽ được thay thế bằng đầu vào từ đầu vào
nguồn n (khi được sử dụng với -a or ::::) hoặc với nđối số thứ '(khi được sử dụng với
-N). Đầu vào sẽ bị xóa thư mục (nếu có).

Để hiểu các chuỗi thay thế vị trí, hãy xem {n}.

{n//} Tên của đối số từ nguồn đầu vào n hoặc là nđối số thứ. Nó là một
sự kết hợp của {n}PHƯƠNG PHÁP.

Chuỗi thay thế vị trí này sẽ được thay thế bằng ký tự của đầu vào từ
Nguồn vào n (khi được sử dụng với -a or ::::) hoặc với nđối số thứ '(khi được sử dụng
với -N). Xem nói cho tôi(1).

Để hiểu các chuỗi thay thế vị trí, hãy xem {n}.

{n/.} Tên cơ sở của đối số từ nguồn đầu vào n hoặc là nđối số thứ 'không có phần mở rộng.
Nó là sự kết hợp của {n}, {/}{.}.

Chuỗi thay thế vị trí này sẽ được thay thế bằng đầu vào từ đầu vào
nguồn n (khi được sử dụng với -a or ::::) hoặc với nđối số thứ '(khi được sử dụng với
-N). Đầu vào sẽ bị xóa thư mục (nếu có) và phần mở rộng.

Để hiểu các chuỗi thay thế vị trí, hãy xem {n}.

{=perl biểu hiện=}
Thay thế bằng tính toán perl biểu hiện. $_ sẽ chứa giống như {}. Sau
đánh giá perl biểu hiện $_ sẽ được sử dụng làm giá trị. Nó được khuyến khích
chỉ thay đổi $ _ nhưng bạn có toàn quyền truy cập vào tất cả GNU song song, tương đôngcủa nội bộ
chức năng và cấu trúc dữ liệu.

Sản phẩm {=perl biểu hiện=} phải được cung cấp dưới dạng một chuỗi duy nhất.

Xem thêm: --rpl --dấu ngoặc đơn

{=n perl biểu hiện=}
Vị trí tương đương với {= perl biểu hiện =}. Để hiểu vị trí
dây thay thế xem {n}.

Xem thêm: {= perl biểu hiện =} {n}.

::: đối số
Sử dụng các đối số từ dòng lệnh làm nguồn đầu vào thay vì stdin (tiêu chuẩn
đầu vào). Không giống như các tùy chọn khác cho GNU song song, tương đông ::: được đặt sau lệnh
trước các đối số.

Sau đây là tương đương:

(echo tệp1; echo tệp2) | gzip song song
song song gzip ::: file1 file2
song song gzip {} ::: file1 file2
song song --arg-sep ,, gzip {} ,, file1 file2
song song --arg-sep ,, gzip ,, file1 file2
song song ::: "gzip file1" "gzip file2"

Để tránh điều trị ::: như sử dụng đặc biệt --arg-sep để đặt dấu phân tách đối số thành
thứ gì khác. Xem thêm --arg-sep.

stdin (đầu vào chuẩn) sẽ được chuyển cho lần chạy quy trình đầu tiên.

Nếu nhiều ::: được cung cấp, mỗi nhóm sẽ được coi là nguồn đầu vào và tất cả
sự kết hợp của các nguồn đầu vào sẽ được tạo ra. Vd ::: 1 2 ::: abc will
kết quả là các kết hợp (1, a) (1, b) (1, c) (2, a) (2, b) (2, c). Cái này hữu ích
để thay thế các vòng lặp for lồng nhau.

::::::: có thể được trộn lẫn. Vì vậy, chúng tương đương:

tiếng vọng song song {1} {2} {3} ::: 6 7 ::: 4 5 ::: 1 2 3
echo song song {1} {2} {3} :::: <(seq 6 7) <(seq 4 5) :::: <(seq 1 3)
song song -a <(seq 6 7) echo {1} {2} {3} :::: <(seq 4 5) :::: <(seq 1 3)
song song -a <(seq 6 7) -a <(seq 4 5) echo {1} {2} {3} ::: 1 2 3
seq 6 7 | song song -a - -a <(seq 4 5) echo {1} {2} {3} ::: 1 2 3
seq 4 5 | tiếng vọng song song {1} {2} {3} :::: <(seq 6 7) - ::: 1 2 3

:::: argfiles
Một cách khác để viết -a argfile1 -a argfile2 ...

::::::: có thể được trộn lẫn.

Xem -a, :::--xapply.

--vô giá trị
-0 Sử dụng NUL làm dấu phân cách. Thông thường các dòng nhập sẽ kết thúc bằng \ n (dòng mới). Nếu họ kết thúc
trong \ 0 (NUL), sau đó sử dụng tùy chọn này. Nó hữu ích để xử lý các đối số có thể
chứa \ n (dòng mới).

--arg-tệp tập tin đầu vào
-a tập tin đầu vào
Sử dụng tập tin đầu vào làm nguồn đầu vào. Nếu bạn sử dụng tùy chọn này, stdin (đầu vào chuẩn) là
được cung cấp cho lần chạy quy trình đầu tiên. Nếu không, stdin (đầu vào tiêu chuẩn) được chuyển hướng
từ / dev / null.

Nếu nhiều -a được đưa ra, mỗi tập tin đầu vào sẽ được coi là nguồn đầu vào và
tất cả các tổ hợp nguồn đầu vào sẽ được tạo ra. Vd: Tập tin foo chứa 1
2, tập tin thanh chứa a b c. -a foo -a thanh sẽ dẫn đến sự kết hợp
(1, a) (1, b) (1, c) (2, a) (2, b) (2, c). Điều này rất hữu ích để thay thế cho-
các vòng lặp.

Xem thêm --xapply{n}.

--arg-file-sep tháng chín-str
Sử dụng tháng chín-str thay vì :::: dưới dạng chuỗi phân tách giữa lệnh và đối số
các tập tin. Hữu ích nếu :::: được sử dụng cho một cái gì đó khác bằng lệnh.

Xem thêm: ::::.

--arg-sep tháng chín-str
Sử dụng tháng chín-str thay vì ::: dưới dạng chuỗi phân cách. Hữu ích nếu ::: được sử dụng để
một cái gì đó khác bằng lệnh.

Cũng hữu ích nếu bạn sử dụng lệnh ::: nhưng bạn vẫn muốn đọc các đối số từ
stdin (đầu vào tiêu chuẩn): Chỉ cần thay đổi --arg-sep đến một chuỗi không có trong
dòng lệnh.

Xem thêm: :::.

--quán ba Hiển thị tiến trình dưới dạng thanh tiến trình. Trong thanh được hiển thị:% công việc đã hoàn thành,
số giây ước tính còn lại và số lượng công việc đã bắt đầu.

Nó tương thích với lòng nhiệt thành:

seq 1000 | song song -j30 --bar '(echo {}; sleep 0.1)' 2>> (zenity --progress
--auto-kill) | nhà vệ sinh

--tệp cơ sở hồ sơ
--bf hồ sơ
hồ sơ sẽ được chuyển đến từng sshlogin trước khi bắt đầu công việc. Nó sẽ là
loại bỏ nếu --dọn dẹp đang hoạt động. Tệp có thể là một tập lệnh để chạy hoặc một số thông thường
dữ liệu cơ sở cần thiết cho các công việc. Nhiều --bf có thể được chỉ định để chuyển nhiều hơn
tập tin cơ sở. Các hồ sơ sẽ được chuyển theo cách tương tự như --chuyển khoản.

--basenamereplace thay thế-str
--bnr thay thế-str
Sử dụng chuỗi thay thế thay thế-str thay vì {/} cho tên cơ sở của dòng đầu vào.

--basenameextensionthay thế thay thế-str
--bner thay thế-str
Sử dụng chuỗi thay thế thay thế-str thay vì {/.} cho tên cơ sở của dòng đầu vào
không có phần mở rộng.

--bg Chạy lệnh trong nền do đó GNU song song, tương đông sẽ không đợi hoàn thành
lệnh trước khi thoát. Đây là giá trị mặc định nếu --semaphore được thiết lập.

Xem thêm: --fg, người đàn ông mà không.

Ngụ ý --semaphore.

--bibtex In mục nhập BibTeX cho GNU song song, tương đông và vô hiệu hóa thông báo trích dẫn.

--khối kích thước
--kích thước khối kích thước
Kích thước của khối tính bằng byte. Kích thước có thể được cố định bằng K, M, G, T, P, k, m, g, t,
hoặc p sẽ nhân kích thước với 1024, 1048576, 1073741824, 1099511627776,
1125899906842624, 1000, 1000000, 1000000000, 1000000000000 hoặc 1000000000000000
tương ứng.

GNU song song, tương đông cố gắng đáp ứng kích thước khối nhưng có thể bị lệch bởi độ dài của một khối
ghi lại. Vì lý do hiệu suất kích thước phải lớn hơn một bản ghi.

kích thước mặc định là 1M.

Xem --đường ống để sử dụng cái này.

--con mèo Tạo một tệp tạm thời có nội dung. Thông thường --đường ống sẽ cung cấp dữ liệu cho
chương trình trên stdin (đầu vào chuẩn). Với --con mèo GNU song song, tương đông sẽ tạo ra một
tệp tạm thời có tên trong {}, vì vậy bạn có thể thực hiện: song song, tương đông --đường ống --con mèo wc {}.

Xem thêm --fifo.

--dọn dẹp
Xóa các tệp đã chuyển. --dọn dẹp sẽ xóa các tệp đã chuyển trên
máy tính từ xa sau khi xử lý xong.

tìm log -name '* gz' | song song \
--sshlogin server.example.com --transfer --return {.}. bz2 \
--cleanup "zcat {} | bzip -9> {.}. bz2"

Với --chuyển khoản tệp được chuyển đến máy tính từ xa sẽ bị xóa vào
máy tính từ xa. Các thư mục đã tạo sẽ không bị xóa - ngay cả khi chúng
trống.

Với --trở lại tệp được chuyển từ máy tính từ xa sẽ bị xóa vào
máy tính từ xa. Các thư mục đã tạo sẽ không bị xóa - ngay cả khi chúng
trống.

--dọn dẹp bị bỏ qua khi không được sử dụng với --chuyển khoản or --trở lại.

--colsep regexp
-C regexp
Dấu phân cách cột. Đầu vào sẽ được coi là một bảng với regexp tách
cột. Cột thứ n có thể được truy cập bằng cách sử dụng {n} or {n.}. Ví dụ 3 {} là ngày 3
cột.

--colsep ngụ ý --cắt rl.

regexp là một Biểu thức chính quy Perl: http://perldoc.perl.org/perlre.html

- nén
Nén các tệp tạm thời. Nếu đầu ra lớn và rất khó nén, điều này sẽ
chiếm ít dung lượng ổ đĩa hơn trong $ TMPDIR và có thể nhanh hơn do ít I / O ổ đĩa hơn.

GNU song song, tương đông sẽ thử lzop, heo con, gzip, pbzip2, làm ơn giải nén, bzip2, lma, lzip, xz in
đơn đặt hàng đó và sử dụng đơn hàng đầu tiên có sẵn.

- chương trình nén prg
--decompress-chương trình prg
Sử dụng prg để (de) nén các tệp tạm thời. Nó được cho rằng prg -dc sẽ
giải nén stdin (đầu vào tiêu chuẩn) thành stdout (đầu ra tiêu chuẩn) trừ khi
--decompress-chương trình được đưa ra.

--ctrlc Gửi SIGINT đến các tác vụ đang chạy trên máy tính từ xa, do đó sẽ giết chúng.

--dấu phân cách phân định
-d phân định Các mục đầu vào được kết thúc bằng ký tự được chỉ định. Dấu ngoặc kép và dấu gạch chéo ngược là
không đặc biệt; mọi ký tự trong đầu vào được thực hiện theo nghĩa đen. Tắt phần cuối-
chuỗi của tệp, được xử lý giống như bất kỳ đối số nào khác. Điều này có thể được sử dụng khi
đầu vào chỉ bao gồm các mục được phân tách bằng dòng mới, mặc dù nó gần như
luôn tốt hơn để thiết kế chương trình của bạn để sử dụng --null nếu có thể. Các
dấu phân cách được chỉ định có thể là một ký tự duy nhất, một ký tự thoát kiểu C, chẳng hạn như
\ n hoặc mã thoát bát phân hoặc thập lục phân. Mã thoát hệ bát phân và thập lục phân
được hiểu như đối với lệnh printf. Các ký tự nhiều byte không phải là
được hỗ trợ.

--dirnamereplace thay thế-str
--dnr thay thế-str
Sử dụng chuỗi thay thế thay thế-str thay vì PHƯƠNG PHÁP cho tên dòng đầu vào.

-E eof-str
Đặt phần cuối của chuỗi tệp thành eof-str. Nếu phần cuối của chuỗi tệp xảy ra dưới dạng
dòng đầu vào, phần còn lại của đầu vào bị bỏ qua. Nếu không -E cũng không -e Được sử dụng,
không có phần cuối của chuỗi tệp được sử dụng.

--trì hoãn giây
Trì hoãn bắt đầu công việc tiếp theo giây giây. GNU song song, tương đông sẽ tạm dừng giây giây sau
bắt đầu mỗi công việc. giây có thể ít hơn 1 giây.

- chạy thử
In lệnh để chạy trên stdout (đầu ra chuẩn), nhưng không chạy lệnh. Sử dụng -v
-v bao gồm gói ssh / rsync nếu công việc sẽ được chạy trên điều khiển từ xa
máy vi tính. Tuy nhiên, đừng tin tưởng vào điều này một cách đơn giản, vì công việc có thể được lên lịch vào
máy tính khác hoặc máy tính cục bộ nếu: có trong danh sách.

--eof[=eof-str]
-e[eof-str]
Tùy chọn này là một từ đồng nghĩa với -E Lựa chọn. Sử dụng -E thay vào đó, vì nó là POSIX
tuân theo xargs trong khi tùy chọn này không. Nếu như eof-str được bỏ qua, không có
cuối chuỗi tệp. Nếu không -E cũng không -e được sử dụng, không có phần cuối của chuỗi tệp được sử dụng.

--env (thử nghiệm alpha)
Sao chép biến môi trường . Điều này sẽ sao chép đến môi trường mà
lệnh được chạy trong. Điều này đặc biệt hữu ích cho việc thực thi từ xa.

Trong Bash cũng có thể là một hàm Bash - chỉ cần nhớ xuất khẩu -f các
chức năng, xem lệnh.

Biến '_' là đặc biệt. Nó sẽ sao chép tất cả các biến môi trường ngoại trừ
những người được đề cập trong ~ / .parallel / ignore_vars.

Để sao chép mảng Bash, bạn cần một hàm nhập, vì mảng Bash không thể
đã xuất:

nhập_mảng () {
func cục bộ = $ 1; sự thay đổi;
xuất $ func = '() {
'"$ (cho arr bằng $ @; do
khai báo -p $ arr | sed '1s / statement -./&g/'
làm xong)"'
}'
}

khai báo -A assoc = '([một] = "1" [hai] = "2")'
khai báo -a được lập chỉ mục = '([0] = "một" [1] = "hai")'

import_array my_importer Assoc đã được lập chỉ mục

song song --env my_importer \
'my_importer; echo "{}" "$ {indexed [{}]}" "$ {assoc [$ {indexed [{}]}]}" '::: "$ {! indexed [@]}"

Để sao chép toàn bộ môi trường, hãy sử dụng chức năng này (ví dụ: bằng cách đặt nó vào .bashrc):

env_parallel () {
xuất song song_bash_enosystem = '() {
'"$ (echo" shopt -s expand_aliases 2> / dev / null "; alias; styleset -p | grep -vFf <(readonly; echo GROUPS; echo FUNCNAME; echo DIRSTACK; echo _; echo PIPESTATUS; echo USERNAME) | grep -v BASH_; sắp chữ -f) "'
}'
# Run as: env_parallel [tùy chọn song song bình thường]
`song song`" $ @ "
hủy đặt song song_bash_en môi trường
}
# gọi là:
env_parallel [tùy chọn song song bình thường]

Xem thêm: --record-env.

--eta Hiển thị số giây ước tính trước khi kết thúc. Điều này buộc GNU song song, tương đông
để đọc tất cả các công việc trước khi bắt đầu tìm số lượng công việc. GNU song song, tương đông
thông thường chỉ đọc công việc tiếp theo để chạy. Ngụ ý --phát triển.

--fg Chạy lệnh ở nền trước do đó GNU song song, tương đông sẽ đợi hoàn thành
lệnh trước khi thoát.

Xem thêm --bg, người đàn ông mà không.

Ngụ ý --semaphore.

--fifo Tạo một phiên bản tạm thời với nội dung. Thông thường --đường ống sẽ cung cấp dữ liệu cho
chương trình trên stdin (đầu vào chuẩn). Với --fifo GNU song song, tương đông sẽ tạo ra một
Năm mươi tạm thời với tên trong {}, vì vậy bạn có thể thực hiện: song song, tương đông --đường ống --fifo wc {}.

Lưu ý: Nếu dữ liệu không được đọc từ năm mươi, công việc sẽ bị chặn vĩnh viễn.

Xem thêm --con mèo.

- bộ lọc-máy chủ
Xóa máy chủ xuống. Đối với mỗi máy chủ từ xa: kiểm tra xem đăng nhập thông qua ssh có hoạt động không. Nếu như
not: không sử dụng máy chủ này.

Hiện tại bạn có thể không đặt - bộ lọc-máy chủ trong một hồ sơ, $ PARALLEL,
/ etc /llel / config hoặc tương tự. Điều này là do GNU song song, tương đông sử dụng GNU song song, tương đông
để tính toán điều này, vì vậy bạn sẽ nhận được một vòng lặp vô hạn. Điều này có thể sẽ được khắc phục trong một
phát hành sau.

--gnu Cư xử như GNU song song, tương đông. Tùy chọn này trước đây được ưu tiên hơn --tollef.
Sản phẩm --tollef tùy chọn hiện đã bị gỡ bỏ và do đó có thể không được sử dụng. --gnu bị giữ
để tương thích.

--tập đoàn Đầu ra của nhóm. Đầu ra từ mỗi công việc được nhóm lại với nhau và chỉ được in khi
lệnh đã kết thúc. stderr (lỗi chuẩn) trước tiên là stdout
(đầu ra tiêu chuẩn). Điều này làm mất một chút thời gian của CPU. Trong những tình huống hiếm hoi GNU song song, tương đông
chiếm nhiều thời gian của CPU và nếu có thể chấp nhận được các kết quả đầu ra từ các
các lệnh được trộn với nhau, sau đó tắt nhóm với -u có thể tăng tốc GNU
song song, tương đông theo hệ số 10.

--tập đoàn là mặc định. Có thể được đảo ngược với -u.

Xem thêm: - bộ đệm dòng - nhóm

--Cứu giúp
-h In bản tóm tắt các tùy chọn sang GNU song song, tương đông và thoát ra.

--tạm dừng khi có lỗi val
--tạm dừng lại val
GNU nên như thế nào song song, tương đông chấm dứt nếu một trong những công việc không thành công?

0 Không dừng lại nếu công việc không thành công. Trạng thái thoát sẽ là số lượng công việc không thành công.
Đây là mặc định.

1 Không bắt đầu công việc mới nếu một công việc không thành công, nhưng hãy hoàn thành các công việc đang chạy
bao gồm cả việc dọn dẹp. Trạng thái thoát sẽ là trạng thái thoát từ lần cuối cùng
thất bại trong công việc.

2 Hủy bỏ tất cả các công việc ngay lập tức và thoát ra mà không cần dọn dẹp. Trạng thái thoát
sẽ là trạng thái thoát khỏi công việc thất bại.

1-99% Nếu val% công việc thất bại và tối thiểu 3: Không bắt đầu công việc mới, nhưng
hoàn thành các công việc đang chạy bao gồm cả dọn dẹp. Trạng thái thoát sẽ là
trạng thái thoát khỏi công việc thất bại cuối cùng.

--tiêu đề regexp
Sử dụng regexp làm tiêu đề. Đối với việc sử dụng bình thường, tiêu đề phù hợp (thường là tiêu đề đầu tiên
hàng: --tiêu đề '.*\n') sẽ được chia bằng cách sử dụng --colsep (sẽ mặc định thành '\ t')
và tên cột có thể được sử dụng làm biến thay thế: {cột Tên}.

Trong --đường ống tiêu đề phù hợp sẽ được thêm vào trước mỗi đầu ra.

--tiêu đề : là một bí danh cho --tiêu đề '.*\n'.

If regexp là một số, nó sẽ phù hợp với nhiều dòng đó.

-I thay thế-str
Sử dụng chuỗi thay thế thay thế-str thay vì {}.

--thay thế[=thay thế-str]
-i[thay thế-str]
Tùy chọn này là từ đồng nghĩa với -Ithay thế-str if thay thế-str được chỉ định, và cho
-I{} nếu không thì. Tùy chọn này không được dùng nữa; sử dụng -I thay thế.

- nhật ký công việc tệp nhật ký
Logfile cho các công việc đã thực thi. Lưu danh sách các công việc đã thực hiện vào tệp nhật ký trong
sau định dạng TAB được phân tách: số thứ tự, sshlogin, thời gian bắt đầu tính bằng giây
kể từ kỷ nguyên, thời gian chạy tính bằng giây, byte trong tệp được truyền, byte trong tệp
trả về, trạng thái thoát, tín hiệu và lệnh chạy.

Để chuyển đổi thời gian thành ISO-8601 nghiêm ngặt, hãy làm:

perl -a -F "\ t" - Là 'chomp ($ F [2] = `ngày -d \ @ $ F [2] +% FT% T`); in tham gia ("\ t", @ F) '

Xem thêm --bản tóm tắt.

--công việc N
-j N
--max-procs N
-P N Số lượng công việc. Chạy tối đa N công việc song song. 0 có nghĩa là càng nhiều càng tốt.
Mặc định là 100% sẽ chạy một công việc trên mỗi lõi CPU.

If --semaphore được đặt mặc định là 1 do đó tạo ra một mutex.

--công việc +N
-j +N
--max-procs +N
-P +N Thêm N vào số lõi CPU. Chạy song song nhiều công việc này. Xem thêm
--use-cpus-thay-of-core.

--công việc -N
-j -N
--max-procs -N
-P -N Trừ N cho số lõi CPU. Chạy song song nhiều công việc này. Nếu
số được đánh giá nhỏ hơn 1 thì 1 sẽ được sử dụng. Xem thêm
--use-cpus-thay-of-core.

--công việc N%
-j N%
--max-procs N%
-P NNhân% N% với số lõi CPU. Chạy song song nhiều công việc này. Nhìn thấy
Ngoài ra --use-cpus-thay-of-core.

--công việc hồ sơ
-j hồ sơ
--max-procs hồ sơ
-P hồ sơ
Đọc tham số từ tệp. Sử dụng nội dung của hồ sơ làm tham số cho -j. Ví dụ
hồ sơ có thể chứa chuỗi 100% hoặc +2 hoặc 10. Nếu hồ sơ được thay đổi khi một
công việc hoàn thành, hồ sơ được đọc lại và số lượng công việc mới được tính toán. Nếu như
số lượng thấp hơn trước, các công việc đang chạy sẽ được phép hoàn thành nhưng mới
công việc sẽ không được bắt đầu cho đến khi đạt được số lượng công việc mong muốn. Điều này
làm cho nó có thể thay đổi số lượng công việc đang chạy đồng thời trong khi GNU
song song, tương đông đang chạy.

--giữ trật tự
-k Giữ trình tự của đầu ra giống như thứ tự của đầu vào. Thông thường đầu ra của một công việc
sẽ được in ngay sau khi công việc hoàn thành. Hãy thử điều này để thấy sự khác biệt:

song song -j4 ngủ {} \; echo {} ::: 2 1 4 3
song song -j4 -k ngủ {} \; echo {} ::: 2 1 4 3

Nếu được sử dụng với --trên tất cả or --không đầu ra sẽ được nhóm theo sshlogin trong đã sắp xếp
trật tự.

-L dòng tối đa
Khi sử dụng với --đường ống: Đọc hồ sơ của dòng tối đa.

Khi sử dụng khác: Sử dụng tối đa dòng tối đa dòng đầu vào không trống trên mỗi dòng lệnh.
Các khoảng trống ở cuối khiến một dòng đầu vào được tiếp tục một cách hợp lý ở lần nhập tiếp theo
hàng.

-L 0 có nghĩa là đọc một dòng, nhưng chèn 0 đối số trên dòng lệnh.

Ngụ ý -X trừ khi -m, --xargs, hoặc là --đường ống được thiết lập.

--dòng tối đa[=dòng tối đa]
-l[dòng tối đa]
Khi sử dụng với --đường ống: Đọc hồ sơ của dòng tối đa.

Khi được sử dụng theo cách khác: Từ đồng nghĩa với -L Lựa chọn. không giống -L, Các dòng tối đa
đối số là tùy chọn. Nếu như dòng tối đa không được chỉ định, nó mặc định là một. Các -l
tùy chọn không được dùng nữa vì tiêu chuẩn POSIX chỉ định -L thay thế.

-l 0 là một bí danh cho -l 1.

Ngụ ý -X trừ khi -m, --xargs, hoặc là --đường ống được thiết lập.

- bộ đệm dòng
Đầu ra bộ đệm trên cơ sở dòng. --tập đoàn sẽ giữ nguyên kết quả đầu ra
công việc. - nhóm cho phép đầu ra kết hợp với một nửa dòng đến từ một công việc và
nửa dòng đến từ công việc khác. - bộ đệm dòng phù hợp giữa hai điều này: GNU
song song, tương đông sẽ in một dòng đầy đủ, nhưng sẽ cho phép trộn các dòng khác nhau
việc làm.

- bộ đệm dòng tốn nhiều sức mạnh của CPU hơn cả hai --tập đoàn- nhóm, nhưng có thể
nhanh hơn --tập đoàn nếu CPU không phải là yếu tố giới hạn.

Xem thêm: --tập đoàn - nhóm

--trọng tải tải tối đa
Không bắt đầu công việc mới trên một máy tính nhất định trừ khi số lượng tiến trình đang chạy
trên máy tính ít hơn tải tối đa. tải tối đa sử dụng cú pháp tương tự như --công việc,
so 100% cho một mỗi CPU là một cài đặt hợp lệ. Chỉ có sự khác biệt là 0 là
được hiểu là 0.01.

- quản trị viên
-M Sử dụng ControlMaster của ssh để kết nối ssh nhanh hơn. Hữu ích nếu công việc chạy từ xa
và rất nhanh để chạy. Điều này bị tắt đối với sshlogins chỉ định sshlogins của riêng họ
lệnh ssh.

--xargs Nhiều đối số. Chèn nhiều đối số theo độ dài dòng lệnh cho phép.

If {} không được sử dụng các đối số sẽ được thêm vào dòng. Nếu như {} được sử dụng
nhiều lần mỗi {} sẽ được thay thế bằng tất cả các đối số.

Hỗ trợ cho --xargs với --sshđăng nhập bị hạn chế và có thể thất bại.

Xem thêm -X để thay thế ngữ cảnh. Nếu nghi ngờ sử dụng -X vì điều đó rất có thể sẽ làm
những gì cần thiết.

-m Nhiều đối số. Chèn nhiều đối số theo độ dài dòng lệnh cho phép.
Nếu nhiều công việc đang được chạy song song: hãy phân phối đồng đều các đối số giữa các
các công việc. Sử dụng -j1 để tránh điều này.

If {} không được sử dụng các đối số sẽ được thêm vào dòng. Nếu như {} được sử dụng
nhiều lần mỗi {} sẽ được thay thế bằng tất cả các đối số.

Hỗ trợ cho -m với --sshđăng nhập bị hạn chế và có thể thất bại.

Xem thêm -X để thay thế ngữ cảnh. Nếu nghi ngờ sử dụng -X vì điều đó rất có thể sẽ làm
những gì cần thiết.

--mục tiêu phiên bản
In phiên bản GNU song song, tương đông và thoát ra. Nếu phiên bản GNU hiện tại song song, tương đông
ít hơn phiên bản mã thoát là 255. Ngược lại là 0.

Điều này hữu ích cho các tập lệnh phụ thuộc vào các tính năng chỉ có sẵn từ một số
phiên bản của GNU song song, tương đông.

--không (thử nghiệm beta)
--trên tất cả không có đối số. Chạy lệnh trên tất cả các máy tính được cung cấp với --sshđăng nhập
nhưng không có đối số. GNU song song, tương đông sẽ đăng nhập --công việc số lượng máy tính trong
song song và chạy công việc trên máy tính. -j điều chỉnh số lượng máy tính để đăng nhập
thành song song.

Điều này hữu ích để chạy cùng một lệnh (ví dụ: thời gian hoạt động) trên danh sách các máy chủ.

--trên tất cả (thử nghiệm beta)
Chạy tất cả các công việc trên tất cả các máy tính được cung cấp với --sshđăng nhập. GNU song song, tương đông sẽ ghi lại
trong --công việc số lượng máy tính song song và chạy từng công việc một trên
máy vi tính. Thứ tự của các công việc sẽ không bị thay đổi, nhưng một số máy tính có thể
hoàn thành trước những người khác. -j Điều chỉnh số lượng máy tính đăng nhập song song.

Khi đang sử dụng --tập đoàn đầu ra sẽ được nhóm theo từng máy chủ, vì vậy tất cả đầu ra
từ một máy chủ sẽ được nhóm lại với nhau.

--đầu ra dưới dạng tập tin
--outputasfiles
--các tập tin Thay vì in đầu ra thành stdout (đầu ra tiêu chuẩn), đầu ra của mỗi công việc
được lưu trong một tệp và tên tệp sau đó sẽ được in.

--đường ống
-- Lan truyền
Truyền thông tin đầu vào cho các công việc trên stdin (đầu vào tiêu chuẩn). Đọc một khối dữ liệu từ stdin
(đầu vào tiêu chuẩn) và cung cấp một khối dữ liệu làm đầu vào cho một công việc.

Kích thước khối được xác định bởi --khối. Các dây --khởi động lại- tăng lên nói
GNU song song, tương đông cách một bản ghi bắt đầu và / hoặc kết thúc. Khối đã đọc sẽ có phần cuối cùng
một phần bản ghi bị xóa trước khi khối được chuyển cho công việc. Một phần
bản ghi sẽ được thêm vào trước khối tiếp theo.

If --khởi động lại được đưa ra, điều này sẽ được sử dụng để tách khi bắt đầu ghi.

If - tăng lên được đưa ra, điều này sẽ được sử dụng để tách ở cuối bản ghi.

Nếu cả hai --khởi động lại- tăng lên được đưa ra, cả hai sẽ phải phù hợp để tìm ra sự chia rẽ
Chức vụ.

Nếu không --khởi động lại cũng không - tăng lên được tặng - tăng lên mặc định là '\ n'. Có
không sử dụng dấu phân tách bản ghi - tăng lên "".

--các tập tin thường được sử dụng với --đường ống.

Xem thêm: --khởi động lại, - tăng lên, --fifo, --con mèo, --pipepart.

--pipepart (thử nghiệm beta)
Các phần của một tệp vật lý. --pipepart hoạt động tương tự như --đường ống, nhưng là nhiều
nhanh hơn. Nó có một số hạn chế:

* Tệp phải là tệp vật lý (có thể tìm kiếm) và phải được cung cấp bằng cách sử dụng -a or
::::.

* Ghi đếm (-N) và đếm dòng (-L/-l) đừng làm việc.

--trơn Bỏ qua bất kỳ --Hồ sơ, $ PARALLEL, và ~ / .parallel / config để có toàn quyền kiểm soát
dòng lệnh (được sử dụng bởi GNU song song, tương đông nội bộ khi được gọi với --sshđăng nhập).

--thêm Kích hoạt các chuỗi thay thế bổ sung: {+ /} {+.} {+ ..} {+ ...} {..} {...} {/ ..}
{/ ...}. Ý tưởng là '{+ foo}' đối lập với '{foo}' và {} =
{+ /} / {/} = {.}. {+.} = {+ /} / {/.}. {+.} = {..}. {+ ..} = {+ /} / {/ ..}. {+ ..} =
{...}. {+ ...} = {+ /} / {/ ...}. {+ ...}

--phát triển
Hiển thị tiến trình tính toán. Liệt kê các máy tính tham gia vào nhiệm vụ với
số lõi CPU được phát hiện và số lượng công việc tối đa để chạy. Sau buổi biểu diễn đó
tiến độ cho mỗi máy tính: số lượng công việc đang chạy, số lượng công việc đã hoàn thành và
phần trăm của tất cả các công việc được thực hiện bởi máy tính này. Tỷ lệ phần trăm sẽ chỉ là
khả dụng sau khi tất cả các công việc đã được lên lịch dưới dạng GNU song song, tương đông chỉ đọc phần tiếp theo
công việc khi đã sẵn sàng lên lịch - điều này để tránh lãng phí thời gian và bộ nhớ bằng cách
đọc mọi thứ khi khởi động.

Bằng cách gửi GNU song song, tương đông SIGUSR2 bạn có thể chuyển đổi bật / tắt --phát triển trên
đang chạy GNU song song, tương đông quá trình.

Xem thêm --eta.

--max-args=đối số tối đa
-n đối số tối đa
Sử dụng nhiều nhất đối số tối đa đối số trên mỗi dòng lệnh. Ít hơn so với đối số tối đa đối số
sẽ được sử dụng nếu kích thước (xem -s tùy chọn) bị vượt quá, trừ khi -x Tùy chọn là
đã cho, trong trường hợp đó GNU song song, tương đông sẽ thoát ra.

-n 0 có nghĩa là đọc một đối số, nhưng chèn 0 đối số trên dòng lệnh.

Ngụ ý -X trừ khi -m được thiết lập.

--max-Replace-args=đối số tối đa
-N đối số tối đa
Sử dụng nhiều nhất đối số tối đa đối số trên mỗi dòng lệnh. Thích -n nhưng cũng làm cho
dây thay thế 1 {} .. {đối số tối đa} đại diện cho đối số 1.. đối số tối đa. Nếu
quá ít args {n} sẽ trống.

-N 0 có nghĩa là đọc một đối số, nhưng chèn 0 đối số trên dòng lệnh.

Điều này sẽ đặt chủ sở hữu của homedir thành người dùng:

tr ':' '\n' < / etc / passwd | song song, tương đông -N7 chown 1 {} 6 {}

Ngụ ý -X trừ khi -m or --đường ống được thiết lập.

Khi sử dụng với --đường ống -N là số lượng bản ghi cần đọc. Đây là một phần
chậm hơn --khối.

- max-line-length-allow
In số ký tự tối đa được phép trên dòng lệnh và thoát (sử dụng
bởi GNU song song, tương đông chính nó để xác định độ dài dòng trên máy tính từ xa).

--số cpus
In số lượng CPU vật lý và thoát ra (được sử dụng bởi GNU song song, tương đông chính nó để
xác định số lượng CPU vật lý trên máy tính từ xa).

- số lõi
In số lõi CPU và thoát (được sử dụng bởi GNU song song, tương đông chính nó để xác định
số lõi CPU trên máy tính từ xa).

- không thông báo
Không hiển thị thông báo trích dẫn. Thông báo trích dẫn được in trên stderr (tiêu chuẩn
lỗi) chỉ khi stderr (lỗi tiêu chuẩn) là một thiết bị đầu cuối, người dùng chưa chỉ định
- không thông báovà người dùng đã không chạy --bibtex Một lần.

--đẹp tốt bụng
Chạy lệnh tại sự tốt đẹp này. Đối với các lệnh đơn giản, bạn chỉ cần thêm tốt đẹp in
phía trước của lệnh. Nhưng nếu lệnh bao gồm nhiều lệnh con hơn (Như:
ls | wc) rồi viết trước tốt đẹp sẽ không phải lúc nào cũng hoạt động. --đẹp sẽ đảm bảo tất cả phụ
lệnh được niced.

- tương tác
-p Nhắc người dùng về việc có nên chạy từng dòng lệnh và đọc một dòng từ
phần cuối. Chỉ chạy dòng lệnh nếu phản hồi bắt đầu bằng 'y' hoặc 'Y'.
Ngụ ý -t.

--dấu ngoặc đơn chuỗi ngoặc đơn
Sử dụng để xác định dấu ngoặc đơn bắt đầu và kết thúc cho {= perl biểu hiện =}. Bên trái và
ngoặc phải có thể gồm nhiều ký tự và được giả định là giống nhau
chiều dài. Mặc định là {==} cho {= là dấu ngoặc đơn bắt đầu và =} cuối cùng
dấu ngoặc đơn.

Một cài đặt hữu ích khác là ,,,, mà sẽ làm cho cả hai dấu ngoặc đơn ,,:

song song --parens ,,,, echo foo là ,, s / I / O / g ,, ::: FII

Xem thêm: --rpl {= perl biểu hiện =}

--Hồ sơ Tên hồ sơ
-J Tên hồ sơ
Sử dụng hồ sơ Tên hồ sơ cho các tùy chọn. Điều này rất hữu ích nếu bạn muốn có nhiều
hồ sơ. Bạn có thể có một hồ sơ để chạy các công việc song song trên địa phương
máy tính và một cấu hình khác để thực hiện công việc trên máy tính từ xa. Xem
phần PROFILE FILES để biết các ví dụ.

Tên hồ sơ tương ứng với tệp ~ / .parallel /Tên hồ sơ.

Bạn có thể đưa ra nhiều cấu hình bằng cách lặp lại --Hồ sơ. Nếu các phần của hồ sơ
xung đột, những cái sau này sẽ được sử dụng.

Mặc định: config

--trích dẫn
-q Trích dẫn lệnh. Điều này sẽ trích dẫn dòng lệnh để các ký tự đặc biệt không
được giải thích bởi shell. Xem phần BÁO GIÁ. Hầu hết mọi người sẽ không bao giờ cần
điều này. Trích dẫn bị tắt theo mặc định.

--no-run-if-blank
-r Nếu stdin (đầu vào chuẩn) chỉ chứa khoảng trắng, không chạy lệnh.

Nếu được sử dụng với --đường ống điều này là chậm.

--swap Không bắt đầu công việc mới trên một máy tính nhất định nếu có cả hoán đổi vào và hoán đổi
Hoạt động.

Hoạt động hoán đổi chỉ được lấy mẫu sau mỗi 10 giây vì quá trình lấy mẫu diễn ra trong 1 giây
để làm.

Hoạt động hoán đổi được tính là (swap-in) * (swap-out), trong thực tế là một hoạt động tốt
giá trị: hoán đổi không phải là một vấn đề, hoán đổi vào không phải là một vấn đề, nhưng cả hai
hoán đổi trong và ngoài thường chỉ ra một vấn đề.

--record-env
Ghi lại các biến môi trường hiện tại trong ~ / .parallel / ignore_vars. Cái này hữu ích
trước khi sử dụng --env _.

Xem thêm --env.

--khởi động lại chuỗi khởi đầu
- tăng lên dây kết thúc
If --khởi động lại được đưa ra chuỗi khởi đầu sẽ được sử dụng để tách khi bắt đầu ghi.

If - tăng lên được đưa ra dây kết thúc sẽ được sử dụng để tách ở cuối bản ghi.

Nếu cả hai --khởi động lại- tăng lên được cung cấp chuỗi kết hợp
chuỗi bắt đầu chuỗi cuối sẽ phải khớp để tìm một vị trí phân chia. Cái này hữu ích
nếu một trong hai chuỗi khởi đầu or dây kết thúc khớp ở giữa một kỷ lục.

Nếu không --khởi động lại cũng không - tăng lên được đưa ra sau đó - tăng lên mặc định là '\ n'. Đến
không sử dụng dấu phân tách hồ sơ - tăng lên "".

--khởi động lại- tăng lên được sử dụng với --đường ống.

Sử dụng --regexp diễn giải --khởi động lại- tăng lên dưới dạng biểu thức chính quy. Đây là
chậm, tuy nhiên.

--regexp Sử dụng --regexp diễn giải --khởi động lại- tăng lên dưới dạng biểu thức chính quy. Đây là
chậm, tuy nhiên.

--remove-rec-sep
--removerecsep
--rrs Xóa văn bản được so khớp bởi --khởi động lại- tăng lên trước khi đưa nó đến
chỉ huy.

Chỉ được sử dụng với --đường ống.

--kết quả tiếp đầu ngữ
--res tiếp đầu ngữ
Lưu kết quả đầu ra thành các tệp. Các tệp sẽ được lưu trữ trong một cây thư mục đã được root
at tiếp đầu ngữ. Trong cây thư mục này, mỗi lệnh sẽ dẫn đến hai tệp:
tiếp đầu ngữ/ / stdout và tiếp đầu ngữ/ / stderr, ở đâu là một chuỗi của
thư mục đại diện cho tiêu đề của nguồn đầu vào (nếu sử dụng --tiêu đề :) hoặc
số lượng của nguồn đầu vào và các giá trị tương ứng.

Ví dụ:

song song --header: --results foo echo {a} {b} ::: a I II ::: b III IIII

sẽ tạo các tệp:

foo / a / I / b / III / stderr
foo / a / I / b / III / stdout
foo / a / I / b / IIII / stderr
foo / a / I / b / IIII / stdout
foo / a / II / b / III / stderr
foo / a / II / b / III / stdout
foo / a / II / b / IIII / stderr
foo / a / II / b / IIII / stdout



song song - kết quả foo echo {1} {2} ::: I II ::: III IIII

sẽ tạo các tệp:

foo / 1 / I / 2 / III / stderr
foo / 1 / I / 2 / III / stdout
foo / 1 / I / 2 / IIII / stderr
foo / 1 / I / 2 / IIII / stdout
foo / 1 / II / 2 / III / stderr
foo / 1 / II / 2 / III / stdout
foo / 1 / II / 2 / IIII / stderr
foo / 1 / II / 2 / IIII / stdout

Xem thêm --các tập tin, --tiêu đề, - nhật ký công việc.

--bản tóm tắt Sơ yếu lý lịch từ công việc chưa hoàn thành cuối cùng. Bằng cách đọc - nhật ký công việc hoặc là --kết quả dir
GNU song song, tương đông sẽ tìm ra công việc chưa hoàn thành cuối cùng và tiếp tục từ đó. Như
GNU song song, tương đông chỉ nhìn vào các số thứ tự trong - nhật ký công việc sau đó là đầu vào,
lệnh, và - nhật ký công việc tất cả phải không thay đổi; nếu không thì GNU song song, tương đông có thể
chạy sai lệnh.

Xem thêm - nhật ký công việc, --kết quả, --sume-không thành công.

--sume-không thành công
Thử lại tất cả không thành công và tiếp tục từ công việc chưa hoàn thành cuối cùng. Bằng cách đọc - nhật ký công việc GNU
song song, tương đông sẽ tìm ra những công việc không thành công và chạy lại những công việc đó. Sau đó nó sẽ
tiếp tục công việc chưa hoàn thành cuối cùng và tiếp tục từ đó. Như GNU song song, tương đông chỉ nhìn vào
các số thứ tự trong - nhật ký công việc sau đó là đầu vào, lệnh và - nhật ký công việc tất cả các
phải không thay đổi; nếu không thì GNU song song, tương đông có thể chạy sai lệnh.

Xem thêm - nhật ký công việc, --bản tóm tắt.

--thử lại n
Nếu một công việc không thành công, hãy thử lại nó trên một máy tính khác mà nó chưa bị lỗi. Làm cái này
n lần. Nếu có ít hơn n máy tính trong --sshđăng nhập GNU song song, tương đông sẽ lại
sử dụng tất cả các máy tính. Điều này rất hữu ích nếu một số công việc không thành công mà không có lý do rõ ràng
(chẳng hạn như lỗi mạng).

--trở lại tên tập tin
Truyền tệp từ máy tính từ xa. --trở lại được sử dụng với --sshđăng nhập khi
đối số là các tệp trên máy tính từ xa. Khi xử lý xong tệp
tên tập tin sẽ được chuyển từ máy tính từ xa bằng rsync và sẽ được đặt
liên quan đến dir đăng nhập mặc định. Ví dụ

echo foo / bar.txt | song song \
--sshlogin server.example.com --return {.}. out touch {.}. out

Thao tác này sẽ chuyển tệp $ HOME / foo / bar.out từ máy tính
máy chủ.example.com vào tập tin foo / bar.out sau khi chạy chạm foo / bar.out on
máy chủ.example.com.

echo /tmp/foo/bar.txt | song song \
--sshlogin server.example.com --return {.}. out touch {.}. out

Thao tác này sẽ chuyển tệp /tmp/foo/bar.out từ máy tính máy chủ.example.com
vào tập tin /tmp/foo/bar.out sau khi chạy chạm /tmp/foo/bar.out on
máy chủ.example.com.

Có thể chuyển nhiều tệp bằng cách lặp lại các tùy chọn nhiều lần:

tiếng vang /tmp/foo/bar.txt | \
song song --sshlogin server.example.com \
--return {.}. out --return {.}. out2 chạm vào {.}. out {.}. out2

--trở lại thường được sử dụng với --chuyển khoản--dọn dẹp.

--trở lại bị bỏ qua khi được sử dụng với --sshđăng nhập : hoặc khi không được sử dụng với --sshđăng nhập.

--vòng tròn tính điểm
--vòng Thông thường --đường ống sẽ cung cấp một khối duy nhất cho mỗi phiên bản của lệnh. Với
--vòng tròn tính điểm tất cả các khối sẽ được ghi ngẫu nhiên vào các lệnh đã chạy.
Điều này rất hữu ích nếu lệnh mất nhiều thời gian để khởi tạo.

--giữ trật tự sẽ không làm việc với --vòng tròn tính điểm vì không thể theo dõi cái nào
khối đầu vào tương ứng với đầu ra nào.

--rpl 'tag perl biểu hiện'
Sử dụng tag như một chuỗi thay thế cho perl biểu hiện. Điều này làm cho nó có thể
xác định các chuỗi thay thế của riêng bạn. GNU song song, tương đông7 chuỗi thay thế là
được thực hiện như:

--rpl '{}'
--rpl '{#} 1 $ _ = $ job-> seq ()'
--rpl '{%} 1 $ _ = $ job-> slot ()'
--rpl '{/} s:. * / ::'
--rpl '{//} $ Global :: use {"File :: Basename"} || = eval "use File :: Basename; 1;"; $ _ = dirname ($ _); '
--rpl '{/.} s:. * / ::; s: \. [^/.] + $ ::; '
--rpl '{.} s: \. [^/.] + $ :: '

Nếu chuỗi thay thế do người dùng xác định bắt đầu bằng '{', nó cũng có thể được sử dụng làm
chuỗi thay thế vị trí (như {2.}).

Bạn chỉ nên thay đổi $ _ nhưng bạn có toàn quyền truy cập vào tất cả GNU
song song, tương đôngcác chức năng bên trong và cấu trúc dữ liệu.

Đây là vài ví dụ:

Xóa 2 phần mở rộng (ví dụ: .tar.gz)
--rpl '{..} s: \. [^/.] + $ ::; s: \. [^/.] + $ ::; '
Chỉ giữ lại phần mở rộng
--rpl '{ext} s:. * \. ::'
Trình tự công việc là chẵn hay lẻ?
--rpl '{lẻ} $ _ = $ job-> seq ()% 2? "lẻ": "chẵn"'

Xem thêm: {= perl biểu hiện =} --dấu ngoặc đơn

- ký tự tối đa=ký tự tối đa
-s ký tự tối đa
Sử dụng nhiều nhất ký tự tối đa các ký tự trên mỗi dòng lệnh, bao gồm lệnh và
đối số ban đầu và giá trị kết thúc null ở cuối chuỗi đối số.
Giá trị lớn nhất được phép phụ thuộc vào hệ thống và được tính như đối số
giới hạn độ dài cho thực thi, nhỏ hơn kích thước môi trường của bạn. Giá trị mặc định là
giá trị lớn nhất.

Ngụ ý -X trừ khi -m được thiết lập.

- giới hạn hiển thị
Hiển thị các giới hạn về độ dài dòng lệnh được áp đặt bởi hoạt động
hệ thống và -s lựa chọn. Đưa đầu vào từ / dev / null (và có thể chỉ định
--no-run-if-blank) nếu bạn không muốn GNU song song, tương đông để làm bất cứ điều gì.

--semaphore
Làm việc như một semaphore đếm. --semaphore sẽ gây ra GNU song song, tương đông để bắt đầu
lệnh trong nền. Khi đạt đến số lượng công việc đồng thời, GNU
song song, tương đông sẽ đợi một trong những lệnh này hoàn thành trước khi bắt đầu một lệnh khác.

--semaphore ngụ ý --bg trừ khi --fg được quy định.

--semaphore ngụ ý --semaphorename `tty` trừ khi --semaphorename được quy định.

Được sử dụng với --fg, --đợi đã--semaphorename.

Lệnh mà không là một bí danh cho song song, tương đông --semaphore.

Xem thêm người đàn ông mà không.

--semaphorename tên
--Tôi tên
Sử dụng tên như tên của semaphore. Mặc định là tên của tty kiểm soát
(đầu ra từ tty).

Mặc định thường hoạt động như mong đợi khi được sử dụng tương tác, nhưng khi được sử dụng trong
một kịch bản tên nên được thiết lập. $$ or tên_task_của tôi thường là một giá trị tốt.

Semaphore được lưu trữ trong ~ / .parallel / semaphores /

Ngụ ý --semaphore.

Xem thêm người đàn ông mà không.

--semaphoretimeout giây
Nếu semaphore không được phát hành trong vài giây, hãy tiếp tục.

Ngụ ý --semaphore.

Xem thêm người đàn ông mà không.

--seqreplace thay thế-str
Sử dụng chuỗi thay thế thay thế-str thay vì {#} cho số thứ tự công việc.

--she tập thể
--hashbang
GNU song song, tương đông có thể được gọi dưới dạng lệnh shebang (#!) như dòng đầu tiên của
script. Nội dung của tệp sẽ được coi là nguồn đầu vào.

Thích bài viết này:

#! / usr / bin / song song --shebang -r traceroute

Foss.org.my
debian.org
freenetproject.org

--she tập thể phải được đặt làm tùy chọn đầu tiên.

Trên FreeBSD env là cần thiết:

#!/ usr / bin / env -S song song --shebang -r traceroute

Foss.org.my
debian.org
freenetproject.org

--shebang-quấn
GNU song song, tương đông có thể song song hóa các tập lệnh bằng cách gói dòng shebang. Nếu chương trình
có thể được chạy như thế này:

tranh luận mèo | chương trình_ song song

sau đó tập lệnh có thể được thay đổi thành:

#! / usr / bin / song song --shebang-wrap / the / original / parser --with-options

Ví dụ

#! / usr / bin / song song --shebang-wrap / usr / bin / python

Nếu chương trình có thể chạy như thế này:

dữ liệu mèo | song song --pipe the_program

sau đó tập lệnh có thể được thay đổi thành:

#! / usr / bin / song song --shebang-wrap --pipe / the / original / parser --with-options

Ví dụ

#! / usr / bin / song song --shebang-wrap --pipe / usr / bin / perl -w

--shebang-quấn phải được đặt làm tùy chọn đầu tiên.

--shellquote
Không chạy lệnh nhưng trích dẫn nó. Hữu ích cho việc tạo thành phần trích dẫn
lệnh cho GNU song song, tương đông.

--skip-đầu-dòng
Không sử dụng dòng đầu tiên (do GNU sử dụng song song, tương đông chính nó khi được gọi bằng
--she tập thể).

--sshdelay giây
Trì hoãn bắt đầu ssh tiếp theo bởi giây giây. GNU song song, tương đông sẽ tạm dừng giây giây
sau khi bắt đầu mỗi ssh. giây có thể ít hơn 1 giây.

-S [ncpu /] sshlogin [, [ncpu /] sshlogin [, ...]]
--sshđăng nhập [ncpu /] sshlogin [, [ncpu /] sshlogin [, ...]]
Phân phối công việc cho các máy tính từ xa. Các công việc sẽ được chạy trên một danh sách điều khiển từ xa
máy vi tính. GNU song song, tương đông sẽ xác định số lõi CPU trên điều khiển từ xa
máy tính và chạy số lượng công việc như được chỉ định bởi -j. Nếu số ncpu is
GNU đã cho song song, tương đông sẽ sử dụng số này cho số lõi CPU trên máy chủ.
Thông thường ncpu sẽ không cần thiết.

An đăng nhập có dạng:

[sshcommand [options]] [username @] hostname

Sshlogin không được yêu cầu mật khẩu.

Sshlogin ':' là đặc biệt, nó có nghĩa là 'không có ssh' và do đó sẽ chạy trên
máy tính cục bộ.

Sshlogin '..' là đặc biệt, nó đọc sshlogins từ ~ / .parallel / sshloginfile

Sshlogin '-' cũng đặc biệt, nó đọc sshlogins từ stdin (đầu vào chuẩn).

Để chỉ định thêm sshlogins, hãy tách các sshlogins bằng dấu phẩy hoặc lặp lại các tùy chọn
nhiều lần.

Ví dụ: xem --sshloginfile.

Máy chủ từ xa phải có GNU song song, tương đông cài đặt.

--sshđăng nhập được biết là gây ra vấn đề với -m-X.

--sshđăng nhập thường được sử dụng với --chuyển khoản, --trở lại, --dọn dẹp--trc.

--sshloginfile tên tập tin (thử nghiệm beta)
--slf tên tập tin (thử nghiệm beta)
Tệp với sshlogins. Tệp bao gồm các sshlogins trên các dòng riêng biệt. Trống
các dòng và dòng bắt đầu bằng '#' bị bỏ qua. Thí dụ:

máy chủ.example.com
[email được bảo vệ]
8 / my-8-core-server.example.com
2/[email được bảo vệ]
# Máy chủ này có SSH đang chạy trên cổng 2222
ssh -p 2222 máy chủ.example.net
4 / ssh -p 2222 quadserver.example.net
# Sử dụng một chương trình ssh khác
myssh -p 2222 -l tên người dùng mysacpu.example.net
# Sử dụng một chương trình ssh khác với số lõi mặc định
// usr / local / bin / myssh -p 2222 -l myusername hexacpu.example.net
# Sử dụng một chương trình ssh khác với 6 lõi
6 // usr / local / bin / myssh -p 2222 -l myusername hexacpu.example.net
# Giả sử 16 lõi trên máy tính cục bộ
16 /:

Khi sử dụng một chương trình ssh khác, đối số cuối cùng phải là tên máy chủ.

nhiều --sshloginfile được cho phép.

GNU song song, tương đông trước tiên sẽ tìm kiếm tệp trong dir hiện tại; nếu thất bại, nó sẽ nhìn
cho tệp trong ~ /. song song.

Tập tin sshlogin '..' là đặc biệt, nó đọc sshlogins từ ~ / .parallel / sshloginfile

Tập tin sshlogin '.' đặc biệt, nó đọc sshlogins từ
/ etc / song song / sshloginfile

Tập tin sshlogin '-' cũng đặc biệt, nó đọc sshlogins từ stdin (tiêu chuẩn
đầu vào).

Nếu tệp sshlogin được thay đổi, tệp sẽ được đọc lại khi công việc kết thúc mặc dù lúc
nhiều nhất một lần mỗi giây. Điều này giúp bạn có thể thêm và xóa máy chủ trong khi
đang chạy.

Điều này có thể được sử dụng để có một daemon cập nhật tệp sshlogin để chỉ chứa
máy chủ hoạt động:

cp gốc.slf tmp2.slf
trong khi [1]; làm
đẹp song song --nonall -j0 -k --slf original.slf --tag echo | perl 's / \ t $ //'> tmp.slf
nếu khác tmp.slf tmp2.slf; sau đó
mv tmp.slf tmp2.slf
fi
ngủ 10
làm xong &
song song --slf tmp2.slf ...

-- thay thế thay thế-str
Sử dụng chuỗi thay thế thay thế-str thay vì {%} cho số vị trí công việc.

--im lặng Im lặng. Công việc đang chạy sẽ không được in. Đây là mặc định. Có thể
đảo ngược với -v.

--tty Mở tty thiết bị đầu cuối. Nếu GNU song song, tương đông được sử dụng để bắt đầu một chương trình tương tác
thì tùy chọn này có thể cần thiết. Nó sẽ chỉ bắt đầu một công việc tại một thời điểm (tức là -j1),
không đệm đầu ra (tức là -u), và nó sẽ mở ra một tty cho công việc. Khi công việc
được thực hiện, công việc tiếp theo sẽ nhận được tty.

--nhãn Gắn thẻ các dòng có đối số. Mỗi dòng đầu ra sẽ được thêm vào trước các đối số
và TAB (\ t). Khi kết hợp với --trên tất cả or --không các dòng sẽ được thêm vào trước
thay vào đó bằng sshlogin.

--nhãn bị bỏ qua khi sử dụng -u.

--chuỗi thẻ str
Gắn thẻ các dòng bằng một chuỗi. Mỗi dòng đầu ra sẽ được thêm vào trước str và TAB
(\ t). str có thể chứa các chuỗi thay thế chẳng hạn như {}.

--chuỗi thẻ bị bỏ qua khi sử dụng -u, --trên tất cả--không.

--tmpdir nói cho tôi
Thư mục cho các tệp tạm thời. GNU song song, tương đông thông thường bộ đệm đầu ra thành
các tệp tạm thời trong / tmp. Bằng cách thiết lập --tmpdir bạn có thể sử dụng một đồng tiền khác cho
các tập tin. Thiết lập --tmpdir tương đương với thiết lập $ TMPDIR.

--tmux Sử dụng tmux cho đầu ra. Bắt đầu một tmux phiên và chạy từng công việc trong một cửa sổ trong đó
phiên họp. Không có đầu ra nào khác sẽ được sản xuất.

--hết giờ val
Hết giờ ra lệnh. Nếu lệnh chạy lâu hơn val vài giây nó sẽ nhận được
bị giết bằng SIGTERM, tiếp theo là SIGTERM 200 mili giây sau đó, tiếp theo là SIGKILL 200 mili giây
sau đó.

If val được theo sau bởi một% thì thời gian chờ sẽ tự động được tính dưới dạng
phần trăm thời gian chạy trung bình trung bình. Chỉ giá trị> 100% mới có ý nghĩa.

--dài dòng
-t In lệnh sẽ chạy trên stderr (lỗi chuẩn).

Xem thêm -v, -p.

--chuyển khoản
Chuyển các tập tin đến máy tính từ xa. --chuyển khoản được sử dụng với --sshđăng nhập khi
các đối số là các tệp và phải được chuyển đến các máy tính từ xa. Tập tài liệu
sẽ được chuyển bằng cách sử dụng rsync và sẽ được đặt so với dir công việc mặc định.
Nếu đường dẫn chứa /. / đường dẫn còn lại sẽ tương đối với dir công việc.
Ví dụ

echo foo / bar.txt | song song \
--sshlogin server.example.com --transfer wc

Thao tác này sẽ chuyển tệp foo / bar.txt đến máy tính máy chủ.example.com đến
hồ sơ $ HOME / foo / bar.txt trước khi chạy wc foo / bar.txt on máy chủ.example.com.

echo /tmp/foo/bar.txt | song song \
--sshlogin server.example.com --transfer wc

Thao tác này sẽ chuyển tệp foo / bar.txt đến máy tính máy chủ.example.com đến
hồ sơ /tmp/foo/bar.txt trước khi chạy wc /tmp/foo/bar.txt on máy chủ.example.com.

--chuyển khoản thường được sử dụng với --trở lại--dọn dẹp.

--chuyển khoản bị bỏ qua khi được sử dụng với --sshđăng nhập : hoặc khi không được sử dụng với
--sshđăng nhập.

--trc tên tập tin
Chuyển, Trả lại, Dọn dẹp. Bàn tay ngắn cho:

--chuyển khoản --trở lại tên tập tin --dọn dẹp

--cắt
Cắt bỏ khoảng trắng trong đầu vào.

n Không cắt tỉa. Đầu vào không được sửa đổi. Đây là mặc định.

l Cắt trái. Xóa khoảng trắng từ đầu nhập. Vd: "a bc" -> "a bc".

r trang trí bên phải. Xóa khoảng trắng ở cuối dữ liệu nhập. Vd: "a bc" -> "a bc".

lr
rl Cả hai đều cắt tỉa. Loại bỏ khoảng trắng từ cả đầu và cuối của đầu vào. Ví dụ: "a bc"
-> "a bc". Đây là giá trị mặc định nếu --colsep Được sử dụng.

- nhóm
-u Bỏ nhóm đầu ra. Đầu ra được in càng sớm càng tốt và vượt qua GNU song song, tương đông
xử lý nội bộ. Điều này có thể khiến đầu ra từ các lệnh khác nhau bị trộn lẫn
do đó chỉ nên được sử dụng nếu bạn không quan tâm đến đầu ra. So sánh những điều này:

song song, tương đông -j0 'ngủ {}; tiếng vang -n bắt đầu {}; ngủ {}; tiếng vang {}chấm dứt' ::: 1 2 3 4

song song, tương đông -u -j0 'ngủ {}; tiếng vang -n bắt đầu {}; ngủ {}; tiếng vang {}chấm dứt' ::: 1 2 3 4

Nó cũng vô hiệu hóa --nhãn. GNU song song, tương đông đầu ra nhanh hơn với -u. So sánh tốc độ của
này:

song song seq ::: 300000000> / dev / null
song song -u seq ::: 300000000> / dev / null
song song --line-buffer seq ::: 300000000> / dev / null

Có thể được đảo ngược với --tập đoàn.

Xem thêm: - bộ đệm dòng --tập đoàn

--tăng lực thay thế thay thế-str
--er thay thế-str
Sử dụng chuỗi thay thế thay thế-str thay vì {.} cho dòng đầu vào không có
gia hạn.

--use-cpus-thay-of-core
Đếm số lượng CPU vật lý thay vì số lõi CPU. Khi tính toán bao nhiêu
các công việc cần chạy đồng thời liên quan đến số lõi CPU mà bạn có thể hỏi GNU
song song, tương đông thay vào đó nhìn vào số lượng CPU vật lý. Điều này sẽ có ý nghĩa đối với
máy tính có siêu phân luồng như hai công việc chạy trên một CPU với
siêu phân luồng sẽ chạy chậm hơn hai công việc chạy trên hai CPU vật lý. Một số
CPU đa nhân có thể chạy nhanh hơn nếu chỉ chạy một luồng trên mỗi CPU vật lý.
Hầu hết người dùng sẽ không cần tùy chọn này.

-v Dài dòng. In lệnh sẽ chạy trên stdout (đầu ra tiêu chuẩn). Có thể được đảo ngược
với --im lặng. Xem thêm -t.

Sử dụng -v -v để in lệnh bao bọc ssh khi chạy từ xa.

--phiên bản
-V In phiên bản GNU song song, tương đông và thoát ra.

--workdir mydir
--wd mydir
Các tệp được chuyển bằng cách sử dụng --chuyển khoản--trở lại sẽ tương đối với mydir on
máy tính từ xa và lệnh sẽ được thực thi trong dir mydir.

Đặc biệt mydir giá trị ... sẽ tạo ra các dirs làm việc dưới ~ / .parallel / tmp / on
các máy tính từ xa. Nếu như --dọn dẹp được đưa ra những dirs này sẽ bị loại bỏ.

Đặc biệt mydir giá trị . sử dụng dir làm việc hiện tại. Nếu hiện tại hoạt động
dir nằm dưới dir nhà bạn, giá trị . được coi là đường dẫn liên quan đến
nhà dir. Điều này có nghĩa là nếu dir ở nhà của bạn khác trên các máy tính từ xa (ví dụ:
nếu thông tin đăng nhập của bạn khác) thì đường dẫn tương đối sẽ vẫn liên quan đến nhà của bạn
d.

Để thấy sự khác biệt, hãy thử:

song song, tương đông -S máy chủ pwd ::: ""

song song, tương đông --wd . -S máy chủ pwd ::: ""

song song, tương đông --wd ... -S máy chủ pwd ::: ""

--đợi đã Chờ cho tất cả các lệnh hoàn thành.

Ngụ ý --semaphore.

Xem thêm người đàn ông mà không.

-X Nhiều đối số có thay thế ngữ cảnh. Chèn nhiều đối số như lệnh
chiều dài dòng cho phép. Nếu nhiều công việc đang được chạy song song: hãy phân phối
đối số đồng đều giữa các công việc. Sử dụng -j1 để tránh điều này.

If {} không được sử dụng các đối số sẽ được thêm vào dòng. Nếu như {} Được sử dụng như
một phần của từ (như hình {}. jpg) thì toàn bộ từ sẽ được lặp lại. Nếu như {} is
được sử dụng nhiều lần mỗi {} sẽ được thay thế bằng các đối số.

Thông thường -X sẽ làm điều đúng đắn, trong khi -m có thể cho kết quả bất ngờ nếu {}
được sử dụng như một phần của từ.

Hỗ trợ cho -X với --sshđăng nhập bị hạn chế và có thể thất bại.

Xem thêm -m.

--lối ra
-x Thoát nếu kích thước (xem -s tùy chọn) bị vượt quá.

--xapply Đọc nhiều nguồn đầu vào như áp dụng. Nếu nhiều nguồn đầu vào được cung cấp, một
đối số sẽ được đọc từ mỗi nguồn đầu vào. Các đối số có thể là
được truy cập trong lệnh dưới dạng 1 {} .. {n}, Vì vậy 1 {} sẽ là một dòng từ đầu vào đầu tiên
nguồn và 6 {} sẽ tham chiếu đến dòng có cùng số dòng từ dòng thứ 6
Nguồn vào.

So sánh hai điều này:

tiếng vọng song song {1} {2} ::: 1 2 3 ::: abc
song song --xapply echo {1} {2} ::: 1 2 3 ::: abc

Các đối số sẽ được tái chế nếu một nguồn đầu vào có nhiều đối số hơn
khác:

song song --xapply echo {1} {2} {3} ::: 1 2 ::: I II III ::: abcdefg

Xem thêm --tiêu đề.

THÍ DỤ: Đang làm việc as xargs -n1. Tranh luận nối thêm


GNU song song, tương đông có thể hoạt động tương tự như xargs -n1.

Để nén tất cả các tệp html bằng cách sử dụng gzip chạy:

tìm . -Tên '* .html' | song song, tương đông gzip --tốt nhất

Nếu tên tệp có thể có sử dụng dòng mới -0. Thay thế FOO BAR bằng FUBAR trong tất cả các tệp
trong dir này và subdirs:

tìm . -kiểu f -print0 | song song, tương đông -q0 perl -i -Thể dục của / FOO THANH / FUBAR / g '

Chú thích -q là cần thiết vì không gian trong 'FOO BAR'.

THÍ DỤ: Reading đối số từ lệnh hàng


GNU song song, tương đông có thể lấy các đối số từ dòng lệnh thay vì stdin (đầu vào chuẩn).
Để nén tất cả các tệp html trong dir hiện tại bằng cách sử dụng gzip chạy:

song song, tương đông gzip --tốt nhất ::: * .html

Để chuyển đổi * .wav thành * .mp3 bằng cách sử dụng LAME chạy một quy trình cho mỗi lần chạy lõi CPU:

song song, tương đông què {} -o {.}. mp3 ::: * .wav

THÍ DỤ: Chèn nhiều đối số


Khi di chuyển nhiều tệp như thế này: mv * .log định mệnh đôi khi bạn sẽ gặp lỗi:

đánh: / bin / mv: Tranh luận quá Dài

vì có quá nhiều tệp. Thay vào đó, bạn có thể làm:

ls | grep -E '\ .log $' | song song, tương đông mv {} định mệnh

Điều này sẽ chạy mv cho mỗi tệp. Nó có thể được thực hiện nhanh hơn nếu mv nhận được càng nhiều đối số
sẽ phù hợp với dòng:

ls | grep -E '\ .log $' | song song, tương đông -m mv {} định mệnh

THÍ DỤ: Bối cảnh thay thế


Để xóa các tập tin ảnh0000.jpg .. ảnh9999.jpg bạn có thể làm:

seq -w 0 9999 | song song, tương đông rm ảnh {}. jpg

Bạn cũng có thể làm:

seq -w 0 9999 | perl -Thể dục 's /(.*)/ picture $ 1.jpg /' | song song, tương đông -m rm

Đầu tiên sẽ chạy rm 10000 lần, trong khi lần cuối cùng sẽ chỉ chạy rm nhiều lần cần thiết để
giữ độ dài dòng lệnh đủ ngắn để tránh Tranh luận quá Dài (nó thường
chạy 1-2 lần).

Bạn cũng có thể chạy:

seq -w 0 9999 | song song, tương đông -X rm ảnh {}. jpg

Điều này cũng sẽ chỉ chạy rm nhiều lần cần thiết để giữ cho độ dài dòng lệnh ngắn
đủ.

THÍ DỤ: Tính chuyên sâu việc làm thay thế


Nếu ImageMagick được cài đặt, điều này sẽ tạo ra một hình thu nhỏ của tệp jpg:

chuyển đổi -hình học 120 foo.jpg Thumb_foo.jpg

Điều này sẽ chạy song song với các công việc number of-cpu-core cho tất cả các tệp jpg trong một thư mục:

ls * .jpg | song song, tương đông chuyển đổi -hình học 120 {} thumb_ {}

Để làm điều đó, sử dụng đệ quy tìm:

tìm . -Tên '* .jpg' | song song, tương đông chuyển đổi -hình học 120 {} {} _thumb.jpg

Lưu ý cách đối số phải bắt đầu bằng {} as {} sẽ bao gồm đường dẫn (ví dụ: chạy chuyển đổi
-hình học 120 ./foo/bar.jpg Thumb_./foo/bar.jpg rõ ràng sẽ là sai). Lệnh sẽ
tạo các tệp như ./foo/bar.jpg_thumb.jpg.

Sử dụng {.} để tránh thêm .jpg trong tên tệp. Lệnh này sẽ làm cho các tệp như
./foo/bar_thumb.jpg:

tìm . -Tên '* .jpg' | song song, tương đông chuyển đổi -hình học 120 {} {.} _ thumb.jpg

THÍ DỤ: Thay thế chuyển hướng


Thao tác này sẽ tạo phiên bản không nén của tệp .gz bên cạnh tệp .gz:

song song, tương đông zcat {} ">"{.} ::: * .gz

Trích dẫn> là cần thiết để trì hoãn chuyển hướng. Một giải pháp khác là trích dẫn
toàn bộ lệnh:

song song, tương đông "zcat {} >{.} " ::: * .gz

Các ký tự shell đặc biệt khác (chẳng hạn như *; $> <| >> <<) cũng cần được đặt trong dấu ngoặc kép,
vì chúng có thể được giải thích bởi shell và không được cấp cho GNU song song, tương đông.

THÍ DỤ: Sáng tác lệnh


Một công việc có thể bao gồm một số lệnh. Thao tác này sẽ in số lượng tệp trong mỗi
danh mục:

ls | song song, tương đông 'echo -n {} " "; ls {} | wc -l '

Để đưa đầu ra vào một tệp có tên .dir:

ls | song song, tương đông '(tiếng vang -n {} " "; ls {} | wc -l) > {} .dir '

Ngay cả các tập lệnh shell nhỏ cũng có thể được chạy bởi GNU song song, tương đông:

tìm . | song song, tương đông 'a = {}; tên = $ {a ## * /}; upper = $ (tiếng vang "$ name" | tr "[:thấp hơn:]"
"[:phía trên:]"); bỏ lỡ "$ name - $ trên "'

ls | song song, tương đông 'mv {} "$ (tiếng vang {} | tr "[:phía trên:]" "[:thấp hơn:]")"'

Đưa ra một danh sách các URL, hãy liệt kê tất cả các URL không thể tải xuống. In số dòng và
URL.

làm sao tệp url | song song, tương đông "wget {} 2>/ dev / null || grep -n {} urlfile "

Tạo một thư mục nhân bản có cùng tên tệp ngoại trừ tất cả các tệp và liên kết tượng trưng đều trống
các tập tin.

cp -rs / the / source / dir gương_dir; tìm mirror_dir -kiểu l | song song, tương đông -m rm {} '&&' chạm
{}

Tìm các tệp trong danh sách không tồn tại

làm sao danh sách tập tin | song song, tương đông 'nếu như [ ! -e {} ] ; sau đó bỏ lỡ {}; fi '

THÍ DỤ: đang gọi Cú đánh chức năng


Nếu lệnh soạn thảo dài hơn một dòng, nó sẽ trở nên khó đọc. Trong Bash, bạn có thể
sử dụng các chức năng. Chỉ cần nhớ xuất khẩu -f chức năng.

làm đi() {
echo Làm điều đó với $ 1
ngủ 2
echo Đã xong với $ 1
}
xuất khẩu -f doit
doit song song ::: 1 2 3

doubleit () {
echo Làm điều đó với $ 1 $ 2
ngủ 2
echo Đã xong với $ 1 $ 2
}
xuất -f nhân đôi
song song kép ::: 1 2 3 ::: ab

Để thực hiện việc này trên các máy chủ từ xa, bạn cần chuyển chức năng bằng cách sử dụng --env:

song song --env doit -S server doit ::: 1 2 3
song song --env doubleit -S máy chủ doubleit ::: 1 2 3 ::: ab

Nếu môi trường của bạn (bí danh, biến và hàm) nhỏ, bạn có thể sao chép đầy đủ
môi trường mà không cần phải xuất khẩu -f bất cứ điều gì. Chỉ cần chạy cái này trước:

env_parallel () {
xuất song song_bash_enosystem = '() {
'"$ (echo" shopt -s expand_aliases 2> / dev / null "; alias; styleset -p | grep -vFf <(readonly; echo GROUPS; echo FUNCNAME; echo DIRSTACK; echo _; echo PIPESTATUS; echo USERNAME) | grep -v BASH_; sắp chữ -f) "'
}'
# Run as: env_parallelllel_bash_enosystem "2> / dev / null;" ...
`song song`" $ @ "
hủy đặt song song_bash_en môi trường
}

Và sau đó gọi là:

env_parallel doit ::: 1 2 3
env_parallel doubleit ::: 1 2 3 ::: ab
env_parallel -S máy chủ doit ::: 1 2 3
env_parallel -S máy chủ kép ::: 1 2 3 ::: ab

THÍ DỤ: Chức năng thử


Để kiểm tra một chương trình với các tham số khác nhau:

kiểm thử() {
if (eval "$ @")> & / dev / null; sau đó
perl -e 'printf "\ 033 [30; 102m [OK] \ 033 [0m @ARGV \ n"' "$ @"
khác
perl -e 'printf "\ 033 [30; 101 phút [FAIL] \ 033 [0m @ARGV \ n"' "$ @"
fi
}
người kiểm tra xuất khẩu -f
trình kiểm tra song song my_program ::: arg1 arg2
lối ra trình kiểm tra song song ::: 1 0 2 0

If chương trình của tôi không thành công, một FAIL màu đỏ sẽ được in sau đó là lệnh không thành công; nếu không thì
lệnh OK màu xanh lá cây sẽ được in sau đó.

THÍ DỤ: Loại bỏ hồ sơ mở rộng khi nào xử lý các tập tin


Khi xử lý tệp, hãy xóa phần mở rộng tệp bằng cách sử dụng {.} thường hữu ích.

Tạo một thư mục cho mỗi tệp zip và giải nén nó trong dir đó:

song song, tương đông 'mkdir {.}; cd {.}; giải nén ../ {} ' ::: * .zip

Nén tất cả các tệp .gz trong thư mục hiện tại bằng cách sử dụng bzip2 chạy 1 công việc trên mỗi lõi CPU trong
song song:

song song, tương đông "zcat {} | bzip2 >{.}. bz2 && rm {} " ::: * .gz

Chuyển đổi tất cả các tệp WAV sang MP3 bằng LAME:

tìm âm thanh -kiểu f -Tên '* .wav' | song song, tương đông què {} -o {.}. mp3

Đặt tất cả được chuyển đổi trong cùng một thư mục:

tìm âm thanh -kiểu f -Tên '* .wav' | song song, tương đông què {} -o mydir / {/.} .mp3

THÍ DỤ: Loại bỏ hai hồ sơ mở rộng khi nào xử lý các tập tin


Nếu bạn có thư mục chứa các tệp tar.gz và muốn chúng được giải nén trong tệp dir tương ứng
(ví dụ: foo.tar.gz sẽ được trích xuất trong dir foo) bạn có thể làm:

song song, tương đông --thêm 'mkdir {..}; tar -C {..} -xf {} ' ::: * .tar.gz

THÍ DỤ: Tải về 10 hình ảnh cho mỗi of các qua 30 ngày


Hãy giả sử một trang web lưu trữ các hình ảnh như:

http://www.example.com/path/to/YYYYMMDD_##. jpg

trong đó YYYYMMDD là ngày và ## là số 01-10. Thao tác này sẽ tải xuống hình ảnh cho
30 ngày qua:

song song, tương đông wget http://www.example.com/path/to/'$ (ngày tháng -d "hôm nay - {1} ngày "
+% Y% m% d) _ {2} .jpg ' ::: $ (seq 30) ::: $ (seq -w 10)

$ (ngày tháng -d "hôm nay - {1} ngày " +% Y% m% d) sẽ cung cấp các ngày trong YYYYMMDD với {1} ngày
bị trừ.

THÍ DỤ: Sao chép các tập tin as cuối cùng sửa đổi ngày (ISO 8601) với thêm ngẫu nhiên chữ số


tìm . | song song, tương đông 'cp {} ../destdir/{= $a = int (10000 * rand); $_ = `ngày tháng -r "$ _"
+% FT% T "$ a" `; nhai; =} '

THÍ DỤ: kỹ thuật số đồng hồ với "nhấp nháy" :


Dấu: trong đồng hồ kỹ thuật số nhấp nháy. Để làm cho mọi dòng khác có dấu ':' và phần còn lại là '' a
biểu thức perl được sử dụng để xem nguồn đầu vào thứ 3. Nếu giá trị modudo 2 là 1: Sử dụng
":" nếu không thì sử dụng "":

song song, tương đông -k bỏ lỡ {1} '{= 3 $ _ = $ _% 2? ":": " "=} '{2} {3} ::: {0..12} ::: {0..5} ::: {0..9}

THÍ DỤ: Tổng hợp nội dung of các tập tin


Điều này:

- tiêu đề song song: echo x {X} y {Y} z {Z} \> x {X} y {Y} z {Z} \
:::X{1..5} :::Y{01..10} :::Z{1..5}

sẽ tạo ra các tệp x1y01z1 .. x5y10z5. Nếu bạn muốn tổng hợp nhóm đầu ra
trên x và z, bạn có thể làm điều này:

song song eval 'cat {= s / y01 / y * / =}> {= s / y01 // =}' ::: * y01 *

Đối với tất cả các giá trị của x và z, nó chạy các lệnh như:

mèo x1y * z1> x1z1

Vì vậy, bạn kết thúc với x1z1 .. x1z5 mỗi chứa nội dung của tất cả các giá trị của y.

THÍ DỤ: Phạm vi rộng Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên song song, tương đông web trình thu thập thông tin / phản chiếu


Tập lệnh bên dưới này sẽ thu thập dữ liệu và phản chiếu một URL song song. Nó tải xuống các trang đầu tiên
là 1 nhấp chuột xuống, sau đó nhấp chuột xuống 2, sau đó là 3; thay vì độ sâu bình thường trước, nơi
liên kết liên kết đầu tiên trên mỗi trang được tìm nạp đầu tiên.

Chạy như thế này:

PARALLEL = -j100 ./parallel-crawl http://gatt.org.yeslab.org/

Gỡ bỏ wget một phần nếu bạn chỉ muốn một trình thu thập thông tin web.

Nó hoạt động bằng cách tìm nạp một trang từ danh sách các URL và tìm kiếm các liên kết trong trang đó
nằm trong cùng một URL bắt đầu và chưa được nhìn thấy. Các liên kết này là
được thêm vào hàng đợi mới. Khi tất cả các trang từ danh sách được hoàn thành, hàng đợi mới sẽ được chuyển đến
danh sách các URL và quá trình được bắt đầu lại cho đến khi không tìm thấy liên kết nào.

#!/ bin / bash

# Ví dụ http://gatt.org.yeslab.org/
URL = $ 1
# Ở bên trong dir bắt đầu
BASEURL = $ (echo $ URL | perl -pe 's: #. * ::; s: (//.* /) [^ /] *: $ 1: ')
URLLIST = $ (mktemp urllist.XXXX)
URLLIST2 = $ (mktemp urllist.XXXX)
SEEN = $ (mktemp đã thấy.XXXX)

# Spider để lấy URL
echo $ URL> $ URLLIST
cp $ URLLIST $ SEEN

while [-s $ URLLIST]; làm
con mèo $ URLLIST |
song song lynx -listonly -image_links -dump {} \; wget -qm -l1 -Q1 {} \; echo Spidered: {} \> \ & 2 |
perl -ne 's /#.*//; s / \ s + \ d +. \ s (\ S +) $ / $ 1 / và thực hiện {$ saw {$ 1} ++ hoặc print} '|
grep -F $ BASEURL |
grep -v -x -F -f $ SEEN | tee -a $ SEEN> $ URLLIST2
mv $ URLLIST2 $ URLLIST
thực hiện

rm -f $ URLLIST $ URLLIST2 $ SEEN

THÍ DỤ: Quy trình xét duyệt các tập tin từ a tar hồ sơ trong khi giải nén


Nếu các tệp cần xử lý nằm trong tệp tar thì hãy giải nén một tệp và xử lý nó
ngay lập tức có thể nhanh hơn lần đầu tiên giải nén tất cả các tệp.

tar xvf foo.tgz | perl - Là 'in $ l; $ l = $ _; HẾT {in $ l} ' | song song, tương đông bỏ lỡ

Perl one-liner là cần thiết để tránh tình trạng chủng tộc.

THÍ DỤ: Viết lại a vòng lặp a vòng lặp trong khi đọc


vòng lặp for như thế này:

(for x trong `cat list`; do
do_something $ x
xong) | process_output

và các vòng lặp while-read-như thế này:

danh sách mèo | (trong khi đọc x; làm
do_something $ x
xong) | process_output

có thể được viết như thế này:

làm sao | song song, tương đông làm việc gì đó | quá trình_output

Ví dụ: Tìm tên máy chủ nào trong danh sách có địa chỉ IP 1.2.3 4:

làm sao hosts.txt | song song, tương đông -P 100 chủ nhà | grep 1.2.3.4

Nếu quá trình xử lý yêu cầu nhiều bước hơn, vòng lặp for như thế này:

(for x trong `cat list`; do
no_extension = $ {x%. *};
do_something $ x scale $ no_extension.jpg
do_step2 <$ x $ no_extension
xong) | process_output

và các vòng lặp while như thế này:

danh sách mèo | (trong khi đọc x; làm
no_extension = $ {x%. *};
do_something $ x scale $ no_extension.jpg
do_step2 <$ x $ no_extension
xong) | process_output

có thể được viết như thế này:

làm sao | song song, tương đông "làm việc gì đó {} tỉ lệ {.}. jpg ; do_step2 <{} {.} " | quá trình_output

THÍ DỤ: Viết lại lồng nhau vòng lặp for


Các vòng lặp for-lồng nhau như thế này:

(for x in `cat xlist`; do
for y in `cat ylist`; làm
do_something $ x $ y
thực hiện
xong) | process_output

có thể được viết như thế này:

song song, tương đông làm việc gì đó 1 {} 2 {} :::: danh sách x danh sách ylist | quá trình_output

Các vòng lặp for-lồng nhau như thế này:

(dành cho giới tính trong MF; làm
cho kích thước trong SML XL XXL; làm
echo $ giới tính $ size
thực hiện
xong) | loại

có thể được viết như thế này:

song song, tương đông bỏ lỡ 1 {} 2 {} ::: M F ::: S M L XL XXL | loại

THÍ DỤ: Tìm kiếm các thấp nhất sự khác biệt giữa các tập tin


khác rất tốt cho việc tìm kiếm sự khác biệt trong các tệp văn bản. khác | wc -l đưa ra một dấu hiệu về
kích thước của sự khác biệt. Để tìm sự khác biệt giữa tất cả các tệp trong dir hiện tại
làm:

song song, tương đông --nhãn 'diff 1 {} 2 {} | wc -l ' ::: * ::: * | loại -nk3

Bằng cách này, có thể xem liệu một số tệp có gần với các tệp khác hay không.

THÍ DỤ: vòng lặp for với cột tên


Khi thực hiện nhiều vòng lặp for lồng nhau, việc theo dõi biến vòng lặp có thể dễ dàng hơn
if được đặt tên thay vì chỉ có một số. Sử dụng --tiêu đề : để cho đối số đầu tiên
là một bí danh được đặt tên cho chuỗi thay thế vị trí:

song song --header: echo {giới tính} {size} ::: giới tính MF ::: kích thước SML XL XXL

Điều này cũng hoạt động nếu tệp đầu vào là tệp có các cột:

cat addressbook.tsv | song song --colsep '\ t' --header: echo {Tên} {Địa chỉ email}

THÍ DỤ: Đếm các sự khác biệt giữa tất cả các các tập tin in a dir


Sử dụng --kết quả kết quả được lưu trong / tmp / diffcount *.

song song --results / tmp / diffcount "diff -U 0 {1} {2} | tail -n +3 | grep -v '^ @' | wc -l" ::: * ::: *

Để biết sự khác biệt giữa tệp A và tệp B, hãy xem tệp '/ tmp / diffcount / 1 / A / 2 / B'.

THÍ DỤ: Sự chạy mau up Rychle việc làm


Bắt đầu một công việc trên máy cục bộ mất khoảng 10 mili giây. Đây có thể là một chi phí lớn nếu
công việc mất rất ít ms để chạy. Thông thường, bạn có thể nhóm các công việc nhỏ lại với nhau bằng cách sử dụng -X cái nào sẽ
làm cho chi phí thấp hơn đáng kể. So sánh tốc độ của chúng:

seq -w 0 9999 | hình chạm song song {}. jpg

seq -w 0 9999 | Hình chạm song song -X {}. jpg

Nếu chương trình của bạn không thể nhận nhiều đối số, thì bạn có thể sử dụng GNU song song, tương đông đẻ trứng
nhiều GNU song song, tương đôngs:

seq -w 0 999999 | song song -j10 - ống song song -j0 hình chạm {}. jpg

If -j0 bình thường sinh ra 252 công việc, sau đó ở trên sẽ cố gắng sinh ra 2520 công việc. Bình thường
Hệ thống GNU / Linux, bạn có thể tạo ra 32000 công việc bằng cách sử dụng kỹ thuật này mà không gặp vấn đề gì. Để nâng cao
tăng giới hạn 32000 việc làm / proc / sys / kernel / pid_max để 4194303.

THÍ DỤ: Sử dụng shell biến


Khi sử dụng các biến shell, bạn cần phải trích dẫn chúng một cách chính xác vì chúng có thể bị tách ra
trên không gian.

Lưu ý sự khác biệt giữa:

V = ("12 bản ghi \" của anh trai tôi đáng giá <\ $ \ $ \ $> "'!' Foo Bar)
echo song song ::: $ {V [@]} # Đây có thể không phải là điều bạn muốn

và:

V = ("12 bản ghi \" của anh trai tôi đáng giá <\ $ \ $ \ $> "'!' Foo Bar)
tiếng vọng song song ::: "$ {V [@]}"

Khi sử dụng các biến trong lệnh thực có chứa các ký tự đặc biệt (ví dụ: khoảng trắng)
bạn có thể trích dẫn chúng bằng cách sử dụng '"$ VAR"' hoặc sử dụng "s và -q:

V = "Đây là hai"
echo song song "'$ V'" ::: dấu cách
song song -q echo "$ V" ::: dấu cách

THÍ DỤ: Nhóm đầu ra dòng


Khi chạy các công việc xuất ra dữ liệu, bạn thường không muốn đầu ra của nhiều công việc
chạy cùng nhau. GNU song song, tương đông mặc định nhóm đầu ra của từng công việc, vì vậy đầu ra là
được in khi công việc kết thúc. Nếu bạn muốn toàn bộ các dòng được in trong khi công việc
đang chạy bạn có thể sử dụng - bộ đệm dòng. Nếu bạn muốn đầu ra được in càng sớm càng tốt
bạn có thể dùng -u.

So sánh đầu ra của:

song song, tương đông traceroute ::: Foss.org.my debian.org freenetproject.org

đến đầu ra của:

song song, tương đông - bộ đệm dòng traceroute ::: Foss.org.my debian.org freenetproject.org

và:

song song, tương đông -u traceroute ::: Foss.org.my debian.org freenetproject.org

THÍ DỤ: Nhãn đầu ra dòng


GNU song song, tương đông nhóm các dòng đầu ra, nhưng có thể khó nhận ra vị trí của các công việc khác nhau
bắt đầu. --nhãn thêm vào trước đối số để hiển thị rõ hơn:

song song, tương đông --nhãn traceroute ::: Foss.org.my debian.org freenetproject.org

--nhãn làm việc với - bộ đệm dòng nhưng không phải với -u:

song song, tương đông --nhãn - bộ đệm dòng traceroute ::: Foss.org.my debian.org freenetproject.org

Kiểm tra thời gian hoạt động của các máy chủ trong ~ / .parallel / sshloginfile:

song song, tương đông --nhãn -S .. --không thời gian hoạt động

THÍ DỤ: Giữ gọi món of đầu ra tương tự as gọi món of đầu vào


Thông thường đầu ra của một lệnh sẽ được in ngay sau khi nó hoàn thành. Đôi khi bạn muốn
thứ tự của đầu ra giữ nguyên như thứ tự của đầu vào. Điều này thường
quan trọng, nếu đầu ra được sử dụng làm đầu vào cho hệ thống khác. -k sẽ đảm bảo đơn hàng
đầu ra sẽ theo thứ tự như đầu vào ngay cả khi các công việc sau kết thúc trước các công việc trước đó.

Nối một chuỗi vào mỗi dòng trong tệp văn bản:

làm sao tệp văn bản | song song, tương đông -k bỏ lỡ {} nối thêm chuỗi

Nếu bạn loại bỏ -k một số dòng có thể xuất hiện không đúng thứ tự.

Một ví dụ khác là traceroute:

song song, tương đông traceroute ::: Foss.org.my debian.org freenetproject.org

sẽ cung cấp truy xuất nguồn gốc của Foss.org.my, debian.org và freenetproject.org, nhưng nó sẽ
được sắp xếp theo công việc nào hoàn thành trước.

Để giữ cho thứ tự giống như đầu vào chạy:

song song, tương đông -k traceroute ::: Foss.org.my debian.org freenetproject.org

Điều này sẽ đảm bảo rằng đường dẫn tới Foss.org.my sẽ được in đầu tiên.

Một ví dụ phức tạp hơn một chút là tải xuống song song một tập tin khổng lồ:
kết nối sẽ cung cấp nhiều dữ liệu hơn nếu bạn tải tệp xuống song song. Để tải xuống
song song xem: "VÍ DỤ: Tải xuống 10 hình ảnh cho mỗi tệp trong 30 ngày qua". Nhưng nếu
bạn đang tải xuống một tệp lớn, bạn có thể tải tệp đó xuống song song.

Để tải xuống byte 10000000-19999999, bạn có thể sử dụng quăn lại:

quăn lại -r 10000000-19999999 http://example.com/the/big/file > tập tin.part

Để tải xuống tệp 1 GB, chúng tôi cần tải xuống 100 phần 10 MB và kết hợp đúng
trật tự.

seq 0 99 | song song, tương đông -k quăn lại -r \
{} 0000000 - {} 9999999 http://example.com/the/big/file > hồ sơ

THÍ DỤ: Song song grep


grep -r greps đệ quy thông qua các thư mục. Trên các CPU đa lõi GNU song song, tương đông có thể thường xuyên
tăng tốc độ này.

tìm . -kiểu f | song song, tương đông -k -j150% -n 1000 -m grep -H -n STRING {}

Điều này sẽ chạy 1.5 công việc cho mỗi lõi và cung cấp 1000 đối số cho grep.

THÍ DỤ: gấm n dòng cho m đều đặn biểu thức.


Giải pháp đơn giản nhất để ghi lại một tệp lớn cho nhiều regexps là:

grep -f regexps.txt tệp lớn

Hoặc nếu regexps là các chuỗi cố định:

grep -F -f tập tin lớn regrecps.txt

Có 2 yếu tố hạn chế: CPU và đĩa I / O. CPU dễ đo lường: Nếu grep chiếm
> 90% CPU (ví dụ: khi chạy trên cùng), thì CPU là một yếu tố hạn chế và song song
sẽ tăng tốc độ này. Nếu không, thì I / O đĩa là yếu tố giới hạn và tùy thuộc vào
hệ thống đĩa có thể nhanh hơn hoặc chậm hơn để song song hóa. Cách duy nhất để biết chắc chắn là
cân đo.

Nếu CPU là yếu tố giới hạn, nên thực hiện song song trên regexps:

con mèo regexp.txt | song song --pipe -L1000 --round-robin grep -f - bigfile

Nếu một dòng khớp với nhiều regexps, dòng đó có thể bị trùng lặp. Lệnh sẽ bắt đầu một
grep trên mỗi CPU và đọc bigfile một lần trên mỗi CPU, nhưng vì điều đó được thực hiện song song, tất cả các lần đọc
ngoại trừ cái đầu tiên sẽ được lưu vào bộ nhớ đệm trong RAM. Tùy thuộc vào kích thước của regexp.txt, nó có thể
nhanh hơn để sử dụng - chặn 10m thay vì -L1000. Nếu regexp.txt quá lớn để vừa với RAM,
loại bỏ --round-robin và điều chỉnh -L1000. Điều này sẽ khiến bigfile được đọc nhiều lần hơn.

Một số hệ thống lưu trữ hoạt động tốt hơn khi đọc nhiều phần song song. Đây là sự thật
cho một số hệ thống RAID và cho một số hệ thống tệp mạng. Để song song việc đọc
tập tin lớn:

song song --pipepart --block 100M -a bigfile -k grep -f regexp.txt

Thao tác này sẽ chia bigfile thành các phần 100MB và chạy grep trên mỗi phần này. Đến
song song cả việc đọc bigfile và regexp.txt kết hợp cả hai bằng cách sử dụng --fifo:

song song --pipepart --block 100M -a bigfile --fifo cat regexp.txt \
\ U1000quot; song song --pipe -LXNUMX --round-robin grep -f - {}

Nếu một dòng khớp với nhiều regexps, dòng đó có thể bị trùng lặp.

THÍ DỤ: Sử dụng xa máy tính


Để chạy lệnh trên máy tính từ xa, cần thiết lập SSH và bạn phải có thể đăng nhập
mà không cần nhập mật khẩu (Các lệnh ssh-bản sao-idssh-agent có thể giúp bạn làm điều đó).

Nếu bạn cần đăng nhập vào toàn bộ cụm, bạn thường không muốn chấp nhận khóa máy chủ
cho mọi máy chủ. Bạn muốn chấp nhận chúng lần đầu tiên và được cảnh báo nếu chúng đã từng
đã thay đổi. Để làm việc đó:

# Thêm máy chủ vào sshloginfile
(echo servera; echo serverb)> .parallel / my_cluster
# Đảm bảo rằng .ssh / config tồn tại
chạm vào .ssh / config
cp .ssh / config .ssh / config.backup
# Tạm thời tắt tính năng kiểm tra nghiêm ngặt
(echo 'Máy chủ *'; echo Nghiêm ngặtHostKeyChecking no) >> .ssh / config
song song --slf my_cluster - không đúng
# Loại bỏ việc vô hiệu hóa tính năng Kiểm tra Chìa khóa nghiêm ngặt
mv .ssh / config.backup .ssh / config

Các máy chủ trong .parallel / my_cluster hiện đã được thêm vào .ssh / known_hosts.

Chạy bỏ lỡ on máy chủ.example.com:

seq 10 | song song --sshlogin server.example.com echo

Để chạy các lệnh trên nhiều máy tính từ xa, hãy chạy:

seq 10 | song song --sshlogin server.example.com, server2.example.net echo

Hoặc:

seq 10 | song song --sshlogin server.example.com \
--sshlogin server2.example.net tiếng vang

Nếu tên người dùng đăng nhập là foo on máy chủ2.example.net sử dụng:

seq 10 | song song --sshlogin server.example.com \
--sshđăng nhập [email được bảo vệ] bỏ lỡ

Nếu danh sách máy chủ của bạn là máy chủ1-88.example.net có đăng nhập foo:

seq 10 | song song -Sfoo @ server {1..88} .example.net echo

Để phân phối các lệnh tới danh sách máy tính, hãy tạo một tệp máy tính của tôi với tất cả
máy tính:

máy chủ.example.com
[email được bảo vệ]
máy chủ3.example.com

Sau đó chạy:

seq 10 | song song --sshloginfile mycomputers echo

Để bao gồm máy tính cục bộ, hãy thêm sshlogin đặc biệt ':' vào danh sách:

máy chủ.example.com
[email được bảo vệ]
máy chủ3.example.com
:

GNU song song, tương đông sẽ cố gắng xác định số lõi CPU trên mỗi điều khiển từ xa
máy tính và chạy một công việc trên mỗi lõi CPU - ngay cả khi các máy tính từ xa không có
cùng số lõi CPU.

Nếu số lõi CPU trên máy tính từ xa không được xác định chính xác thì số
lõi CPU có thể được thêm vào phía trước. Ở đây máy tính có 8 lõi CPU.

seq 10 | song song --sshlogin 8 / server.example.com echo

THÍ DỤ: Chuyển nhượng of các tập tin


Để giải nén lại các tệp đã nén bằng bzip2 sử dụng máy tính từ xa chạy:

tìm nhật ký / -name '* .gz' | \
song song --sshlogin server.example.com \
--transfer "zcat {} | bzip2 -9> {.}. bz2"

Điều này sẽ liệt kê các tệp .gz trong các bản ghi thư mục và tất cả các thư mục bên dưới. Sau đó, nó sẽ
chuyển các tập tin sang máy chủ.example.com đến thư mục tương ứng trong $ HOME / nhật ký. Trên
máy chủ.example.com tệp sẽ được giải nén lại bằng cách sử dụng zcatbzip2 dẫn đến
tập tin tương ứng với .gz thay thế bằng . Bz2.

Nếu bạn muốn tệp bz2 kết quả được chuyển trở lại máy tính cục bộ, hãy thêm
--trở lại {.}. bz2:

tìm nhật ký / -name '* .gz' | \
song song --sshlogin server.example.com \
--transfer --return {.}. bz2 "zcat {} | bzip2 -9> {.}. bz2"

Sau khi giải nén xong, . Bz2-tệp được chuyển trở lại máy tính cục bộ
và đặt bên cạnh bản gốc .gz-tập tin.

Nếu bạn muốn xóa các tệp đã chuyển trên máy tính từ xa, hãy thêm --dọn dẹp. Điều này
sẽ xóa cả tệp được chuyển đến máy tính từ xa và các tệp được chuyển
từ máy tính từ xa:

tìm nhật ký / -name '* .gz' | \
song song --sshlogin server.example.com \
--transfer --return {.}. bz2 --cleanup "zcat {} | bzip2 -9> {.}. bz2"

Nếu bạn muốn chạy trên một số máy tính, hãy thêm các máy tính vào --sshđăng nhập hoặc sử dụng ',' hoặc
nhiều --sshđăng nhập:

tìm nhật ký / -name '* .gz' | \
song song --sshlogin server.example.com, server2.example.com \
--sshlogin server3.example.com \
--transfer --return {.}. bz2 --cleanup "zcat {} | bzip2 -9> {.}. bz2"

Bạn có thể thêm máy tính cục bộ bằng cách sử dụng --sshđăng nhập :. Điều này sẽ vô hiệu hóa việc xóa và
chỉ chuyển cho máy tính cục bộ:

tìm nhật ký / -name '* .gz' | \
song song --sshlogin server.example.com, server2.example.com \
--sshlogin server3.example.com \
--sshlogin: \
--transfer --return {.}. bz2 --cleanup "zcat {} | bzip2 -9> {.}. bz2"

Thường --chuyển khoản, --trở lại--dọn dẹp được sử dụng cùng nhau. Chúng có thể được rút ngắn thành
--trc:

tìm nhật ký / -name '* .gz' | \
song song --sshlogin server.example.com, server2.example.com \
--sshlogin server3.example.com \
--sshlogin: \
--trc {.}. bz2 "zcat {} | bzip2 -9> {.}. bz2"

Với tập tin máy tính của tôi chứa danh sách các máy tính mà nó trở thành:

tìm nhật ký / -name '* .gz' | song song --sshloginfile mycomputers \
--trc {.}. bz2 "zcat {} | bzip2 -9> {.}. bz2"

Nếu tệp ~ / .parallel / sshloginfile chứa danh sách các máy tính tay ngắn đặc biệt
-S .. có thể được sử dụng:

tìm nhật ký / -name '* .gz' | song song -S .. \
--trc {.}. bz2 "zcat {} | bzip2 -9> {.}. bz2"

THÍ DỤ: Phân phối công việc đến địa phương xa máy tính


Chuyển đổi * .mp3 thành * .ogg chạy một quy trình trên mỗi lõi CPU trên máy tính cục bộ và máy chủ2:

song song --trc {.}. ogg -S server2 ,: \
'mpg321 -w - {} | oggenc -q0 - -o {.}. ogg '::: * .mp3

THÍ DỤ: Chạy các tương tự lệnh on xa máy tính


Để chạy lệnh thời gian hoạt động trên máy tính từ xa, bạn có thể làm:

song song, tương đông --nhãn --không -S server1, server2 thời gian hoạt động

--không đọc không có đối số. Nếu bạn có một danh sách các công việc bạn muốn chạy trên mỗi máy tính, bạn
có thể làm được:

song song, tương đông --nhãn --trên tất cả -S server1, server2 bỏ lỡ ::: 1 2 3

Hủy bỏ --nhãn nếu bạn không muốn sshlogin được thêm vào trước đầu ra.

Nếu bạn có nhiều máy chủ, hãy sử dụng '-j0' để truy cập song song nhiều máy chủ hơn.

THÍ DỤ: Song song hóa rsync


rsync là một công cụ tuyệt vời, nhưng đôi khi nó sẽ không lấp đầy băng thông có sẵn. Đây là
thường là một vấn đề khi sao chép một số tệp lớn qua kết nối tốc độ cao.

Sau đây sẽ bắt đầu một rsync mỗi tệp lớn trong src-thư mục đến đích dir trên máy chủ
người phục vụ thức ăn:

cd src-dir; tìm . -kiểu f -kích thước +100000 | song song, tương đông -v ssh người phục vụ thức ăn mkdir -p
/ dest-dir / {//} \; rsync -s -Haessh {} fooserver: / dest-dir / {}

Các dirs được tạo có thể kết thúc với quyền sai và các tệp nhỏ hơn không được
chuyển nhượng. Để khắc phục những lần chạy rsync một lần cuối cùng:

rsync -Haessh src-dir / fooserver: / dest-dir /

Nếu bạn không thể đẩy dữ liệu, nhưng cần phải kéo chúng và các tệp được gọi là chữ số.png
(ví dụ: 000000.png) bạn có thể thực hiện:

seq -w 0 99 | song song, tương đông rsync -Haessh fooserver: src-path / * {}. png destdir /

THÍ DỤ: Sử dụng nhiều đầu vào in một lệnh


Sao chép các tệp như foo.es.ext sang foo.ext:

ls * .es. * | perl -Thể dục 'in; s / \. es // ' | song song, tương đông -N2 cp 1 {} 2 {}

Lệnh perl chia ra 2 dòng cho mỗi đầu vào. GNU song song, tương đông mất 2 đầu vào (sử dụng -N2)
và thay thế {1} và {2} bằng các đầu vào.

Đếm trong hệ nhị phân:

song song, tương đông -k bỏ lỡ ::: 0 1 ::: 0 1 ::: 0 1 ::: 0 1 ::: 0 1 ::: 0 1

In số trên các mặt đối lập của khuôn sáu mặt:

song song, tương đông --xapply -a <(seq 6) -a <(seq 6 -1 1) bỏ lỡ

song song, tương đông --xapply bỏ lỡ :::: <(seq 6) <(seq 6 -1 1)

Chuyển đổi tệp từ tất cả các thứ tự con sang tệp PNG với các số liên tiếp (hữu ích cho việc tạo
đầu vào PNG cho ffmpeg):

song song, tương đông --xapply -a <(tìm . -kiểu f | loại) -a <(seq $ (tìm . -kiểu f | wc -l)) chuyển đổi
1 {} {2} .png

Phiên bản thay thế:

tìm . -kiểu f | loại | song song, tương đông chuyển đổi {} {#}. png

THÍ DỤ: Sử dụng a bàn as đầu vào


Nội dung của table_file.tsv:

foo quán ba
baz quux

Chạy:

cmd -o bar -i foo
cmd -o quux -i baz

bạn có thể chạy:

song song, tương đông -a bảng_file.tsv --colsep '\NS' cmd -o 2 {} -i 1 {}

Lưu ý: Giá trị mặc định cho GNU song song, tương đông là loại bỏ các khoảng trắng xung quanh các cột. Để giữ lại
dấu cách:

song song, tương đông -a bảng_file.tsv --cắt n --colsep '\NS' cmd -o 2 {} -i 1 {}

THÍ DỤ: chạy các tương tự lệnh 10 thời gian


Nếu bạn muốn chạy cùng một lệnh với các đối số giống nhau 10 lần song song, bạn có thể
làm:

seq 10 | song song, tương đông -n0 Lệnh của tôi my_args

THÍ DỤ: Đang làm việc as làm sao | sh. Tài nguyên không tốn kém việc làm đánh giá


GNU song song, tương đông có thể hoạt động tương tự như làm sao | sh.

Một công việc không tốn kém tài nguyên là một công việc sử dụng rất ít CPU, I / O đĩa và I / O mạng.
Ping là một ví dụ về một công việc không tốn kém tài nguyên. wget cũng vậy - nếu các trang web nhỏ.

Nội dung của tệp job_to_run:

ping -c 1 10.0.0.1
wget http://example.com/status.cgi? ip = 10.0.0.1
ping -c 1 10.0.0.2
wget http://example.com/status.cgi? ip = 10.0.0.2
...
ping -c 1 10.0.0.255
wget http://example.com/status.cgi? ip = 10.0.0.255

Để chạy đồng thời 100 quy trình, hãy làm:

song song, tương đông -j 100 < job_to_run

Vì không có một lệnh các công việc sẽ được đánh giá bởi shell.

THÍ DỤ: Đang xử lý a to hồ sơ sử dụng chi tiết lõi


Để xử lý một tệp lớn hoặc một số đầu ra, bạn có thể sử dụng --đường ống để chia dữ liệu thành các khối
và chuyển các khối vào chương trình xử lý.

Nếu chương trình là gzip -9 bạn có thể làm:

làm sao tập tin lớn | song song, tương đông --đường ống - tăng lên '' -k gzip -9 >bigfile.gz

Điều này sẽ chia tập tin lớn thành các khối 1 MB và chuyển nó vào gzip -9 song song. Một gzip
sẽ được chạy trên mỗi lõi CPU. Đầu ra của gzip -9 sẽ được giữ theo thứ tự và lưu vào
bigfile.gz

gzip hoạt động tốt nếu đầu ra được nối thêm, nhưng một số quá trình xử lý không hoạt động như vậy -
ví dụ sắp xếp. Đối với GNU này song song, tương đông có thể đưa đầu ra của mỗi lệnh vào một tệp.
Thao tác này sẽ sắp xếp song song một tệp lớn:

làm sao tập tin lớn | song song, tương đông --đường ống --các tập tin loại | song song, tương đông -Xj1 loại -m {} ';' rm {}
>bigfile.sort

Đây tập tin lớn được chia thành các khối khoảng 1MB, mỗi khối kết thúc bằng '\ n' (là
mặc định cho - tăng lên). Mỗi khối được chuyển đến loại và đầu ra từ loại được lưu vào
các tập tin. Các tệp này được chuyển sang tệp thứ hai song song, tương đông chạy loại -m trên các tập tin trước đây
nó loại bỏ các tập tin. Đầu ra được lưu vào bigfile.sort.

GNU song song, tương đông's --đường ống tối đa khoảng 100 MB / s vì mỗi byte phải được sao chép
thông qua GNU song song, tương đông. Nhưng nếu tập tin lớn là một tệp GNU thực (có thể tìm kiếm) song song, tương đông có thể vượt qua
sao chép và gửi các bộ phận trực tiếp đến chương trình:

song song, tương đông --pipepart --khối 100m -a tập tin lớn --các tập tin loại | song song, tương đông -Xj1 loại -m {} ';' rm
{} >bigfile.sort

THÍ DỤ: Chạy chi tiết hơn 250 việc làm cách giải quyết


Nếu bạn cần chạy song song một lượng lớn công việc, thì bạn có thể sẽ gặp phải
giới hạn xử lý tệp thường là khoảng 250 công việc. Nếu bạn là siêu người dùng, bạn có thể tăng
giới hạn trong /etc/security/limits.conf nhưng bạn cũng có thể sử dụng cách giải quyết này. Xử lý tập tin
giới hạn là mỗi quá trình. Điều đó có nghĩa là nếu bạn chỉ tạo ra nhiều GNU hơn song song, tương đôngs sau đó mỗi
chúng có thể chạy 250 công việc. Điều này sẽ tạo ra tới 2500 công việc:

làm sao đầu vào của tôi | song song, tương đông --đường ống -N 50 --vòng tròn tính điểm -j50 song song, tương đông -j50 your_prg

Điều này sẽ tạo ra tối đa 62500 lệnh (sử dụng thận trọng - bạn cần RAM 64 GB để thực hiện việc này và
bạn có thể cần phải tăng / proc / sys / kernel / pid_max):

làm sao đầu vào của tôi | song song, tương đông --đường ống -N 250 --vòng tròn tính điểm -j250 song song, tương đông -j250 your_prg

THÍ DỤ: Đang làm việc as câm hơn nữa đèn hiệu


Lệnh mà không là một bí danh cho song song, tương đông --semaphore.

Một semaphore đếm sẽ cho phép một số lượng công việc nhất định được bắt đầu trong nền.
Khi số lượng công việc đang chạy trong nền, GNU mà không sẽ đợi một trong những
để hoàn thành trước khi bắt đầu một lệnh khác. mà không --đợi đã sẽ đợi tất cả các công việc
hoàn thành.

Chạy 10 công việc đồng thời trong nền:

cho tôi trong * .log; làm
echo $ i
sem -j10 gzip $ i ";" echo xong
thực hiện
sem - chờ đợi

Một mutex là một semaphore đếm chỉ cho phép một công việc chạy. Thao tác này sẽ chỉnh sửa tệp
tập tin của tôi và thêm vào trước tệp với các dòng có số từ 1 đến 3.

seq 3 | song song sem sed -i -e 'i {}' myfile

As tập tin của tôi có thể rất lớn, điều quan trọng là chỉ có một quy trình chỉnh sửa tệp cùng một lúc
thời gian.

Đặt tên cho semaphore để có nhiều semaphore khác nhau hoạt động cùng lúc:

seq 3 | song song sem --id mymutex sed -i -e 'i {}' myfile

THÍ DỤ: Bắt đầu biên tập viên với tên tập tin từ tiêu chuẩn (Tiêu chuẩn đầu vào)


Bạn có thể sử dụng GNU song song, tương đông để bắt đầu các chương trình tương tác như emacs hoặc vi:

làm sao người làm nghề phi lê | song song, tương đông --tty -X emacs

làm sao người làm nghề phi lê | song song, tương đông --tty -X vi

Nếu có nhiều tệp hơn số lượng sẽ phù hợp trên một dòng lệnh, trình chỉnh sửa sẽ được khởi động
một lần nữa với các tệp còn lại.

THÍ DỤ: Chạy sudo


sudo yêu cầu mật khẩu để chạy lệnh dưới dạng root. Nó lưu trữ quyền truy cập, vì vậy bạn chỉ cần
để nhập lại mật khẩu nếu bạn chưa sử dụng sudo một thời gian.

Lệnh:

song song sudo echo ::: Đây là một ý tưởng tồi

là không tốt, vì bạn sẽ được nhắc nhập mật khẩu sudo cho mỗi công việc. Bạn có thể
hoặc làm:

sudo echo Cái này
song song sudo echo ::: là một ý kiến ​​hay

hoặc:

sudo song song echo ::: Đây là một ý tưởng hay

Bằng cách này, bạn chỉ phải nhập mật khẩu sudo một lần.

THÍ DỤ: GNU Song song as hàng đợi hệ thống / lô giám đốc


GNU song song, tương đông có thể hoạt động như một hệ thống hàng đợi công việc đơn giản hoặc trình quản lý hàng loạt. Ý tưởng là đặt
các công việc vào một tệp và có GNU song song, tương đông đọc từ đó liên tục. Như GNU song song, tương đông
sẽ dừng lại ở cuối tệp chúng tôi sử dụng đuôi để tiếp tục đọc:

đúng >công việc; đuôi -n + 0 -f công việc | song song, tương đông

Để gửi công việc của bạn vào hàng đợi:

bỏ lỡ Lệnh của tôi my_arg >> công việc

Tất nhiên bạn có thể sử dụng -S để phân phối công việc cho các máy tính từ xa:

đúng >công việc; đuôi -f công việc | song song, tương đông -S ..

Có một vấn đề nhỏ khi sử dụng GNU song song, tương đông làm hệ thống hàng đợi / quản lý hàng loạt: Bạn có
để gửi số lượng công việc JobSlot trước khi chúng bắt đầu và sau đó bạn có thể gửi một
tại một thời điểm và công việc sẽ bắt đầu ngay lập tức nếu có sẵn các vị trí trống. Đầu ra từ
các công việc đang chạy hoặc đã hoàn thành bị giữ lại và sẽ chỉ được in khi JobSlots có nhiều công việc hơn
đã được bắt đầu (trừ khi bạn sử dụng --ungroup hoặc -u, trong trường hợp này kết quả từ các công việc
được in ngay lập tức). Ví dụ: nếu bạn có 10 ô công việc thì đầu ra từ ô đầu tiên
lệnh đã hoàn thành sẽ chỉ được in khi lệnh 11 đã bắt đầu và kết quả của lệnh thứ hai
lệnh đã hoàn thành sẽ chỉ được in khi lệnh 12 đã bắt đầu.

sử dụng --eof để tạo GNU song song, tương đông lối ra, đuôi cũng cần phải thoát ra:

tail -n + 0 -f command-list.txt |
(song song --eof = EXIT {}; echo Hiện tại đã hoàn thành song song;
(seq 1000 >> command-list.txt &);
echo Xong việc nối dữ liệu giả buộc đuôi thoát ra)

THÍ DỤ: GNU Song song as dir bộ vi xử lý


Nếu bạn có dir trong đó người dùng thả các tệp cần được xử lý, bạn có thể thực hiện việc này trên
GNU / Linux (Nếu bạn biết gì inotifychờ được gọi trên các nền tảng khác, tệp báo cáo lỗi):

inotifychờ -q -m -r -e CHUYỂN ĐẾN -e CLOSE_WRITE --định dạng % w% f my_dir | song song, tương đông -u bỏ lỡ

Điều này sẽ chạy lệnh bỏ lỡ trên mỗi tệp được đưa vào my_dir hoặc các thứ tự con của my_dir.

Tất nhiên bạn có thể sử dụng -S để phân phối công việc cho các máy tính từ xa:

inotifychờ -q -m -r -e CHUYỂN ĐẾN -e CLOSE_WRITE --định dạng % w% f my_dir | song song, tương đông -S .. -u
bỏ lỡ

Nếu các tệp cần xử lý nằm trong tệp tar thì hãy giải nén một tệp và xử lý nó
ngay lập tức có thể nhanh hơn lần đầu tiên giải nén tất cả các tệp. Thiết lập bộ xử lý dir dưới dạng
ở trên và giải nén vào dir.

Sử dụng GNU Song song làm bộ xử lý dir có những hạn chế giống như sử dụng GNU Song song như
hệ thống hàng đợi / quản lý hàng loạt.

BÁO GIÁ


GNU song song, tương đông rất phóng khoáng trong việc trích dẫn. Bạn chỉ cần trích dẫn các ký tự có
ý nghĩa đặc biệt trong shell:

() $ `'" <>; | \

và tùy thuộc vào ngữ cảnh, chúng cũng cần được trích dẫn:

~ & #! ? khoảng trống * {

Do đó, hầu hết mọi người sẽ không bao giờ cần trích dẫn nhiều hơn là đặt '\' trước
ký tự đặc biệt.

Thường thì bạn có thể chỉ cần đặt \ 'xung quanh mỗi':

perl -ne '/ ^ \ S + \ s + \ S + $ / và in tệp $ ARGV, "\ n"'

có thể được trích dẫn:

song song perl -ne \ '' / ^ \ S + \ s + \ S + $ / và in tệp $ ARGV, "\ n" '\' :::

Tuy nhiên, khi bạn muốn sử dụng một biến shell, bạn cần phải trích dẫn $ -sign. Đây là một
ví dụ bằng cách sử dụng $ PARALLEL_SEQ. Biến này được đặt bởi GNU song song, tương đông chính nó, vì vậy
đánh giá $ phải được thực hiện bởi trình bao phụ do GNU bắt đầu song song, tương đông:

seq 10 | song song, tương đông -N2 bỏ lỡ seq: \ $ PARALLEL_SEQ arg1: {1} arg2: {2}

Nếu biến được đặt trước GNU song song, tương đông bắt đầu, bạn có thể làm điều này:

VAR = this_is_set_before_starting

bỏ lỡ thử nghiệm | song song, tương đông bỏ lỡ {} $ VAR

Bản in: thử nghiệm this_is_set_b Before_starting

Sẽ phức tạp hơn một chút nếu biến chứa nhiều hơn một khoảng trắng trong một hàng:

VAR = "hai không gian giữa mỗi từ"

bỏ lỡ thử nghiệm | song song, tương đông bỏ lỡ {} \ '"$ VAR" \'

Bản in: thử nghiệm hai không gian giữa mỗi lời

Nếu biến không nên được đánh giá bởi trình bao khởi động GNU song song, tương đông nhưng được
được đánh giá bởi trình bao phụ do GNU bắt đầu song song, tương đông, sau đó bạn cần phải trích dẫn nó:

bỏ lỡ thử nghiệm | song song, tương đông VAR = this_is_set_ after_starting \; bỏ lỡ {} \ $ VAR

Bản in: thử nghiệm this_is_set_ after_starting

Sẽ phức tạp hơn một chút nếu biến chứa khoảng trắng:

bỏ lỡ thử nghiệm | song song, tương đông VAR = '"hai không gian giữa mỗi từ"' bỏ lỡ {} \ '"$ VAR" \'

Bản in: thử nghiệm hai không gian giữa mỗi lời

$$ là biến shell chứa id tiến trình của shell. Điều này sẽ in
id quy trình của trình bao đang chạy GNU song song, tương đông:

seq 10 | song song, tương đông bỏ lỡ $$

Và điều này sẽ in id quy trình của các trình bao phụ do GNU bắt đầu song song, tương đông.

seq 10 | song song, tương đông bỏ lỡ \ $ \ $

Nếu các ký tự đặc biệt không được đánh giá bởi trình bao phụ thì bạn cần phải
bảo vệ nó khỏi đánh giá từ cả GNU shell khởi động song song, tương đông và vỏ phụ:

bỏ lỡ thử nghiệm | song song, tương đông bỏ lỡ {} \\\ $ VAR

Bản in: thử nghiệm $ VAR

GNU song song, tương đông có thể bảo vệ chống lại sự đánh giá của trình bao phụ bằng cách sử dụng -q:

bỏ lỡ thử nghiệm | song song, tương đông -q bỏ lỡ {} \ $ VAR

Bản in: thử nghiệm $ VAR

Điều này đặc biệt hữu ích nếu bạn có nhiều trích dẫn. Nếu bạn muốn chạy một tập lệnh perl
như thế này:

perl - Là '/ ^ \ S + \ s + \ S + $ / in $ ARGV, "\ n" ' hồ sơ

Nó cần được trích dẫn như thế này:

ls | song song, tương đông perl - Là '/ ^ \\ S + \\ s + \\ S + \ $ / \ và\ in\ \ $ ARGV, \ "\\ n \" ' ls | song song, tương đông perl
- Là \ '' / ^ \ S + \ s + \ S + $ / in $ ARGV, "\ n" '\'

Lưu ý cách cần trích dẫn dấu cách, \ 's, "s và $. GNU song song, tương đông có thể thực hiện việc trích dẫn bằng cách
sử dụng tùy chọn -q:

ls | song song, tương đông -q perl - Là '/ ^ \ S + \ s + \ S + $ / in $ ARGV, "\ n" '

Tuy nhiên, điều này có nghĩa là bạn không thể làm cho trình bao phụ diễn giải các ký tự đặc biệt. Vì
ví dụ vì -q điều này SẼ KHÔNG HOẠT ĐỘNG:

ls * .gz | song song, tương đông -q "zcat {} >{.} "

ls * .gz | song song, tương đông -q "zcat {} | bzip2 >{.}. bz2 "

bởi vì> và | cần được giải thích bởi trình bao phụ.

Nếu bạn gặp các lỗi như:

sh: -c: dòng 0: lỗi cú pháp gần mã thông báo không mong muốn
sh: Lỗi cú pháp: Chuỗi được trích dẫn chưa kết thúc
sh: -c: dòng 0: EOF không mong muốn trong khi tìm kiếm kết quả phù hợp '' '
sh: -c: dòng 1: lỗi cú pháp: kết thúc tệp không mong muốn

sau đó bạn có thể thử sử dụng -q.

Nếu bạn đang sử dụng bash quá trình thay thế như <(con mèo foo) sau đó bạn có thể thử -q
chuẩn bị trước lệnh với bash -c:

ls | song song, tương đông -q bash -c 'wc -c <(tiếng vang {}) '

Hoặc để thay thế đầu ra:

ls | song song, tương đông -q bash -c 'hắc ín c {} | tee >(gzip >{} .tar.gz) | bzip2 >{} .tar.bz2 '

Kết luận : Để tránh đối phó với các vấn đề trích dẫn, có thể dễ dàng hơn chỉ cần viết một
script nhỏ hoặc một hàm (hãy nhớ xuất khẩu -f hàm) và có GNU song song, tương đông cuộc gọi
cái đó.

DANH SÁCH ĐANG CHẠY JOBS


Nếu bạn muốn có một danh sách các công việc hiện đang chạy, bạn có thể chạy:

killall -USR1 song song, tương đông

GNU song song, tương đông sau đó sẽ in các lệnh hiện đang chạy trên stderr (lỗi chuẩn).

HOÀN THÀNH ĐANG CHẠY JOBS NHƯNG DO KHÔNG BẮT ĐẦU Mới JOBS


Nếu bạn hối hận vì đã bắt đầu nhiều công việc, bạn có thể phá vỡ GNU song song, tương đông, nhưng nếu bạn muốn
đảm bảo rằng bạn không có công việc đang hoàn thành một nửa, bạn nên gửi tín hiệu HẠN MỤC TIÊU đến GNU
song song, tương đông:

killall -KỲ HẠN song song, tương đông

Điều này sẽ cho GNU biết song song, tương đông không bắt đầu bất kỳ công việc mới nào, nhưng hãy đợi cho đến khi
các công việc đang chạy được hoàn thành trước khi thoát.

MÔI TRƯỜNG BIẾN


$ PARALLEL_PID
Biến môi trường $ PARALLEL_PID do GNU đặt song song, tương đông và hiển thị với
công việc bắt đầu từ GNU song song, tương đông. Điều này làm cho các công việc có thể
giao tiếp trực tiếp với GNU song song, tương đông. Hãy nhớ trích dẫn $, vì vậy nó được
đánh giá bằng shell chính xác.

Ví dụ: Nếu mỗi công việc kiểm tra một giải pháp và một trong các công việc tìm ra giải pháp
công việc có thể nói với GNU song song, tương đông không bắt đầu công việc khác bằng cách: giết -KỲ HẠN
$ PARALLEL_PID. Điều này chỉ hoạt động trên máy tính cục bộ.

$ PARALLEL_SHELL (thử nghiệm alpha)
Sử dụng shell shell này cho các lệnh chạy bởi GNU Parallel:

· $ PARALLEL_SHELL. Nếu sử dụng không xác định:

· Trình bao khởi động GNU Parallel. Nếu điều đó không thể được xác định:

· $ VỎ. Nếu sử dụng không xác định:

· / Bin / sh

$ PARALLEL_SEQ
$ PARALLEL_SEQ sẽ được đặt thành số thứ tự của công việc đang chạy. Nhớ để
trích dẫn $, vì vậy nó được đánh giá bởi trình bao chính xác.

Ví dụ:

seq 10 | song song, tương đông -N2 bỏ lỡ seq: '$' PARALLEL_SEQ arg1: {1} arg2: {2}

Thư mục $ TMPDIR cho các tệp tạm thời. Nhìn thấy: --tmpdir.

$ PARALLEL
Biến môi trường $ PARALLEL sẽ được sử dụng làm tùy chọn mặc định cho GNU
song song, tương đông. Nếu biến chứa các ký tự shell đặc biệt (ví dụ: $, * hoặc khoảng trắng)
thì chúng cần phải được thoát bằng \.

Ví dụ:

làm sao | song song, tương đông -j1 -k -v ls

có thể được viết như:

làm sao | PARALLEL = "- kvj1" song song, tương đông ls

làm sao | song song, tương đông -j1 -k -v -S "myssh người dùng @ máy chủ " ls

có thể được viết như:

làm sao | PARALLEL = '- kvj1 -S myssh \ user @ server ' song song, tương đông bỏ lỡ

Lưu ý rằng \ ở giữa là cần thiết vì 'myssh' và 'user @ server' phải là
một đối số.

MẶC ĐỊNH HỒ SƠ (CẤU HÌNH TẬP TIN)


Tệp cấu hình chung / etc /llel / config, theo sau là tệp cấu hình người dùng
~ / .parallel / config (trước đây gọi là .parallelrc) sẽ được đọc lần lượt nếu chúng tồn tại.
Các dòng bắt đầu bằng '#' sẽ bị bỏ qua. Định dạng có thể tuân theo định dạng của môi trường
biến $ PARALLEL, nhưng thường dễ dàng hơn nếu chỉ cần đặt mỗi tùy chọn trên một dòng riêng của nó.

Các tùy chọn trên dòng lệnh được ưu tiên, theo sau là biến môi trường
$ PARALLEL, tệp cấu hình người dùng ~ / .parallel / configvà cuối cùng là toàn cầu
tập tin cấu hình / etc /llel / config.

Lưu ý rằng không có tệp nào được đọc cho các tùy chọn, cũng như biến môi trường $ PARALLEL, có thể
chứa các tùy chọn đã nghỉ hưu như --tollef.

HỒ SƠ CÁC TẬP TIN


If --Hồ sơ bộ, GNU song song, tương đông sẽ đọc hồ sơ từ tệp đó thay vì toàn bộ
hoặc các tệp cấu hình người dùng. Bạn có thể có nhiều --hồ sơ.

Ví dụ: Hồ sơ để chạy một lệnh trên mọi sshlogin trong ~ / .ssh / sshlogins và thêm vào
đầu ra với sshlogin:

echo --tag -S .. --nonall> ~ / .parallel / n
thời gian hoạt động song song -Jn

Ví dụ: Hồ sơ để chạy mọi lệnh với -j-1tốt đẹp

echo -j-1 tốt đẹp> ~ / .parallel / nice_profile
song song -J nice_profile bzip2 -9 ::: *

Ví dụ: Hồ sơ để chạy tập lệnh perl trước mỗi lệnh:

echo "perl -e '\ $ a = \ $ \ $; print \ $ a, \" \ ",' \ $ PARALLEL_SEQ ', \" \ ";';" > ~ / .parallel / pre_perl
tiếng vọng song song -J pre_perl ::: *

Lưu ý rằng $ và "cần được trích dẫn như thế nào bằng \.

Ví dụ: Hồ sơ để chạy các công việc được phân phối với tốt đẹp trên máy tính từ xa:

echo -S .. hay quá> ~ / .parallel / dist
song song -J dist --trc {.}. bz2 bzip2 -9 ::: *

EXIT TÌNH TRẠNG


If --tạm dừng khi có lỗi 0 hoặc không được chỉ định:

0 Tất cả các công việc đã chạy mà không có lỗi.

1-253 Một số công việc không thành công. Trạng thái thoát cung cấp số lượng công việc không thành công

254 Hơn 253 công việc không thành công.

255 Lỗi khác.

If --tạm dừng khi có lỗi 1 hoặc 2: Trạng thái thoát của công việc không thành công.

KHÁC BIỆT GIỮA GNU Song song ALTERNATIVES


Có rất nhiều chương trình với một số chức năng của GNU song song, tương đông. GNU song song, tương đông
cố gắng bao gồm những chức năng tốt nhất mà không phải hy sinh tính dễ sử dụng.

TÓM TẮT BẢNG
Các tính năng sau nằm trong một số công cụ có thể so sánh được:

Đầu vào
I1. Các đối số có thể được đọc từ stdin
I2. Các đối số có thể được đọc từ một tệp
I3. Đối số có thể được đọc từ nhiều tệp
I4. Các đối số có thể được đọc từ dòng lệnh
I5. Các đối số có thể được đọc từ một bảng
I6. Các đối số có thể được đọc từ cùng một tệp bằng cách sử dụng #! (tập thể)
I7. Đầu vào hướng dòng làm mặc định (Không cần trích dẫn các ký tự đặc biệt)

Thao tác nhập liệu
M1. Lệnh tổng hợp
M2. Nhiều đối số có thể lấp đầy một dòng thực thi
M3. Các đối số có thể được đặt ở bất kỳ đâu trong dòng thực thi
M4. Nhiều đối số có thể được đặt ở bất kỳ đâu trong dòng thực thi
M5. Các đối số có thể được thay thế bằng ngữ cảnh
M6. Đầu vào có thể được coi là dòng thực thi hoàn chỉnh

Kết quả đầu ra
O1. Nhóm sản lượng để đầu ra từ các công việc khác nhau không trộn lẫn
Khí O2. Gửi stderr (lỗi tiêu chuẩn) tới stderr (lỗi tiêu chuẩn)
O3. Gửi stdout (đầu ra tiêu chuẩn) đến stdout (đầu ra tiêu chuẩn)
O4. Thứ tự đầu ra có thể giống với thứ tự đầu vào
O5. Stdout chỉ chứa stdout (đầu ra chuẩn) từ lệnh
O6. Stderr chỉ chứa stderr (lỗi chuẩn) từ lệnh

Thực hiện
E1. Chạy công việc song song
E2. Liệt kê các công việc đang chạy
E3. Hoàn thành công việc đang chạy, nhưng không bắt đầu công việc mới
E 4. Số lượng công việc đang chạy có thể phụ thuộc vào số lượng cp
E5. Hoàn thành công việc đang chạy, nhưng không bắt đầu công việc mới sau lần thất bại đầu tiên
E6. Có thể điều chỉnh số lượng công việc đang chạy trong khi chạy

Thực hiện từ xa
R1. Công việc có thể được thực hiện trên máy tính từ xa
R2. Các tệp cơ sở có thể được chuyển
R3. Các tệp đối số có thể được chuyển
R4. Các tệp kết quả có thể được chuyển
R5. Dọn dẹp các tệp đã chuyển
R6. Không cần tệp cấu hình
R7. Không chạy nhiều hơn MaxStartups của SSHD có thể xử lý
R8. Lệnh SSH có thể định cấu hình
R9. Thử lại nếu kết nối thỉnh thoảng bị ngắt

đèn hiệu
S1. Khả năng hoạt động như một mutex
S2. Khả năng hoạt động như một semaphore đếm

Legend
- = không
x = không áp dụng
ID = có

Vì mọi phiên bản mới của chương trình không được kiểm tra, bảng có thể đã lỗi thời. Vui lòng nộp hồ sơ
một báo cáo lỗi nếu bạn tìm thấy lỗi (Xem BÁO CÁO NHÓM).

song song: I1 I2 I3 I4 I5 I6 I7 M1 M2 M3 M4 M5 M6 O1 O2 O3 O4 O5 O6 E1 E2 E3 E4 E5 E6 R1 R2
R3 R4 R5 R6 R7 R8 R9 S1 S2

xargs: I1 I2 - - - - - - M2 M3 - - - - O2 O3 - O5 O6 E1 - - - - - - - - -
- x - - - - -

tìm -exec: - - - x - x - - M2 M3 - - - - - O2 O3 O4 O5 O6 - - - - - - -
- - - - - - - - - xx

make -j: - - - - - - - - - - - - - - O1 O2 O3 - x O6 E1 - - - E5 - - - -
- - - - - - - -

ppss: I1 I2 - - - - I7 M1 - M3 - - M6 O1 - - x - - E1 E2? E3 E4 - - R1 R2 R3 R4
- -? R7? ? - -

công suất: I1 I2 - I4 I5 - - M1 - M3 - - M6 O1 O2 O3 - O5 O6 E1 - - E4 - E6 R1 - -
- - R6 - - - S1 -

xjobs: TODO - Vui lòng gửi báo cáo lỗi nếu bạn biết xjobs hỗ trợ những tính năng nào (Xem
BÁO CÁO).

prll: TODO - Vui lòng gửi báo cáo lỗi nếu bạn biết prll hỗ trợ những tính năng nào (Xem
BÁO CÁO).

dxargs: VIỆC CẦN LÀM - Vui lòng gửi báo cáo lỗi nếu bạn biết dxargs hỗ trợ những tính năng nào (Xem
BÁO CÁO).

mdm / middelman: VIỆC CẦN LÀM - Vui lòng gửi báo cáo lỗi nếu bạn biết mdm / middelman có những tính năng nào
hỗ trợ (Xem NHÓM BÁO CÁO).

xapply: TODO - Vui lòng gửi báo cáo lỗi nếu bạn biết những tính năng nào mà xapply hỗ trợ (Xem
BÁO CÁO).

paexec: TODO - Vui lòng gửi báo cáo lỗi nếu bạn biết paexec hỗ trợ những tính năng nào (Xem
BÁO CÁO).

ladon: CẦN LÀM - Vui lòng gửi báo cáo lỗi nếu bạn biết những tính năng nào mà ladon hỗ trợ (Xem
BÁO CÁO).

ClusterSSH: TODO - Vui lòng gửi báo cáo lỗi nếu bạn biết ClusterSSH hỗ trợ những tính năng nào
(Xem BẢNG BÁO CÁO).

KHÁC BIỆT GIỮA xargs GNU Song song
xargs cung cấp một số khả năng tương tự như GNU song song, tương đông.

xargs xử lý không tốt với các ký tự đặc biệt (chẳng hạn như dấu cách, 'và "). Để xem sự cố, hãy thử
điều này:

chạm vào tệp quan trọng
chạm vào 'not important_file'
không * | xargs rm
mkdir -p "Bản ghi 12 \" của anh trai tôi "
là | xargs rmdir

Bạn có thể chỉ định -0 or -d "\n", nhưng nhiều trình tạo đầu vào không được tối ưu hóa để sử dụng vô giá trị
làm dấu phân cách nhưng được tối ưu hóa cho dòng mới làm dấu phân cách. Ví dụ cái đầu, đuôi, ôi, ls, bỏ lỡ,
khát, tar -v, perl (-0 và \ 0 thay vì \ n), xác định vị trí (yêu cầu sử dụng -0), tìm (Yêu cầu
sử dụng -print0), grep (yêu cầu người dùng sử dụng -z or -Z), loại (yêu cầu sử dụng -z).

Vì vậy GNU song song, tương đôngSự tách dòng mới của có thể được mô phỏng bằng:

làm sao | xargs -d "\n" -n1 lệnh

xargs có thể chạy song song một số công việc nhất định, nhưng không hỗ trợ chạy số-
công việc của-cpu-lõi song song.

xargs không hỗ trợ nhóm đầu ra, do đó đầu ra có thể chạy cùng nhau, ví dụ
nửa đầu của dòng là từ một quy trình và nửa cuối của dòng là từ một quy trình khác
tiến trình. Ví dụ Song song grep không thể được thực hiện một cách đáng tin cậy với xargs bởi vì điều này. Đến
xem điều này trong thực tế, hãy thử:

song song perl -e '\ $ a = \ "1 {} \" x10000000 \; print \ \ $ a, \ "\\ n \"' '>' {} ::: abcdef
ls -labcdef
song song -kP4 -n1 grep 1> out.par ::: abcdef
echo abcdef | xargs -P4 -n1 grep 1> out.xargs-unbuf
echo abcdef | xargs -P4 -n1 grep --line-buffered 1> out.xargs-linebuf
echo abcdef | xargs -n1 grep 1> out.xargs-serial
ls -l out *
md5sum ra *

xargs không có hỗ trợ để giữ thứ tự của đầu ra, do đó nếu chạy các công việc trong
sử dụng song song xargs đầu ra của công việc thứ hai không thể bị hoãn lại cho đến công việc đầu tiên
đã xong.

xargs không hỗ trợ chạy công việc trên máy tính từ xa.

xargs không có hỗ trợ thay thế ngữ cảnh, vì vậy bạn sẽ phải tạo các đối số.

Nếu bạn sử dụng một chuỗi thay thế trong xargs (-I) bạn không thể ép buộc xargs sử dụng nhiều hơn một
tranh luận.

Trích dẫn trong xargs hoạt động như -q trong GNU song song, tương đông. Điều này có nghĩa là các lệnh đã soạn và
chuyển hướng yêu cầu sử dụng bash -c.

ls | song song, tương đông "wc {} > {} .wc "

trở thành (giả sử bạn có 8 lõi)

ls | xargs -d "\n" -P8 -I {} bash -c "wc {} > {} .wc "



ls | song song, tương đông "tiếng vang {}; ls {} | wc "

trở thành (giả sử bạn có 8 lõi)

ls | xargs -d "\n" -P8 -I {} bash -c "tiếng vang {}; ls {} | wc "

KHÁC BIỆT GIỮA tìm -Exec GNU Song song
tìm -Exec cung cấp một số khả năng tương tự như GNU song song, tương đông.

tìm -Exec chỉ hoạt động trên các tệp. Vì vậy, việc xử lý đầu vào khác (chẳng hạn như máy chủ hoặc URL) sẽ
yêu cầu tạo các đầu vào này dưới dạng tệp. tìm -Exec không hỗ trợ chạy các lệnh trong
song song, tương đông.

KHÁC BIỆT GIỮA làm cho -j GNU Song song
làm cho -j có thể chạy các công việc song song, nhưng yêu cầu một Makefile thủ công để thực hiện việc này. Kết quả đó
trong phần trích dẫn bổ sung để tên tệp chứa dòng mới hoạt động chính xác.

làm cho -j không hỗ trợ nhóm đầu ra, do đó đầu ra có thể chạy cùng nhau, ví dụ
nửa đầu của dòng là từ một quy trình và nửa cuối của dòng là từ một quy trình khác
tiến trình. Ví dụ Song song grep không thể được thực hiện một cách đáng tin cậy với làm cho -j bởi vì điều này

(Phiên bản rất sớm của GNU song song, tương đông được thực hiện một cách ngẫu nhiên bằng cách sử dụng làm cho -j).

KHÁC BIỆT GIỮA ppss GNU Song song
ppss cũng là một công cụ để chạy các công việc song song.

Đầu ra của ppss là thông tin trạng thái và do đó không hữu ích để sử dụng làm đầu vào cho
lệnh khác. Kết quả đầu ra từ các công việc được đưa vào các tệp.

Không thể thay đổi đối số thay thế chuỗi ($ ITEM). Các lập luận phải được trích dẫn - do đó
các đối số chứa các ký tự đặc biệt (dấu cách '"&! *) có thể gây ra sự cố. Nhiều hơn một
đối số không được hỗ trợ. Tên tệp chứa dòng mới không được xử lý chính xác.
Khi đọc đầu vào từ một tệp, null không thể được sử dụng như một dấu chấm hết. ppss cần đọc
toàn bộ tập tin đầu vào trước khi bắt đầu bất kỳ công việc nào.

Thông tin đầu ra và trạng thái được lưu trữ trong ppss_dir và do đó yêu cầu dọn dẹp khi
hoàn thành. Nếu dir không được gỡ bỏ trước khi chạy ppss một lần nữa nó có thể không gây ra
xảy ra như ppss nghĩ rằng nhiệm vụ đã được thực hiện. GNU song song, tương đông bình thường sẽ không cần
dọn dẹp nếu đang chạy cục bộ và sẽ chỉ cần dọn dẹp nếu dừng bất thường và
chạy từ xa (--dọn dẹp có thể không hoàn thành nếu dừng bất thường). Ví dụ Song song
grep sẽ yêu cầu xử lý hậu kỳ bổ sung nếu được viết bằng cách sử dụng ppss.

Đối với hệ thống từ xa, PPSS yêu cầu 3 bước: cấu hình, triển khai và khởi động. GNU song song, tương đông có thể
yêu cầu một bước.

VÍ DỤ TỪ ppss HƯỚNG DẪN

Đây là các ví dụ từ ppsstrang hướng dẫn sử dụng tương đương với GNU song song, tương đông:

1 ./ppss.sh độc lập -d / path / to / files -c 'gzip'

1 find / path / to / files -type f | gzip song song

2 ./ppss.sh độc lập -d / path / to / files -c 'cp "$ ITEM" / destination / dir'

2 find / path / to / files -type f | cp song song {} / destination / dir

3 ./ppss.sh độc lập -f list-of-urls.txt -c 'wget -q'

3 song song -a list-of-urls.txt wget -q

4 ./ppss.sh độc lập -f list-of-urls.txt -c 'wget -q "$ ITEM"'

4 song song -a list-of-urls.txt wget -q {}

5 ./ppss config -C config.cfg -c 'encode.sh' -d / source / dir -m 192.168.1.100 -u ppss -k
ppss-key.key -S ./encode.sh -n node.txt -o / some / output / dir --upload --download; ./ppss
triển khai -C config.cfg; ./ppss start -C config

5 # song song không sử dụng cấu hình. Nếu bạn muốn một tên người dùng khác, hãy đặt nó vào node.txt:
user @ hostname

5 tìm nguồn / dir -type f | song song --sshloginfile node.txt --trc {.}. mp3 lame -a {} -o
{.}. mp3 --preset standard --quiet

6 ./ppss dừng -C config.cfg

6 killall -TERM song song

7 ./ppss tạm dừng -C config.cfg

7 Nhấn: CTRL-Z hoặc killall -SIGTSTP song song

8 ./ppss tiếp tục -C config.cfg

8 Nhập: fg hoặc killall -SIGCONT song song

9 Trạng thái ./ppss.sh -C config.cfg

9 killall -SIGUSR2 song song

KHÁC BIỆT GIỮA peexec GNU Song song
peexec cũng là một công cụ để chạy các công việc song song.

VÍ DỤ TỪ peexec HƯỚNG DẪN

Đây là các ví dụ từ peexectrang thông tin của tương đương bằng GNU song song, tương đông:

1 pexec -o sqrt-% s.dat -p "$ (seq 10)" -e NUM -n 4 -c - \
'echo "scale = 10000; sqrt ($ NUM)" | bc '

1 seq 10 | song song -j4 'echo "scale = 10000; sqrt ({})" | bc> sqrt - {}. dat '

2 pexec -p "$ (ls myfiles * .ext)" -i% s -o% s.sort - sắp xếp

2 ls myfiles * .ext | sắp xếp song song {} "> {}. sắp xếp"

3 pexec -f image.list -n auto -e B -u star.log -c - \
'fistar $ B.fits -f 100 -F id, x, y, flux -o $ B.star'

3 song song -a image.list \
'fistar {} .fits -f 100 -F id, x, y, flux -o {} .star' 2> star.log

4 pexec -r * .png -e IMG -c -o - - \
'chuyển đổi $ IMG $ {IMG% .png} .jpeg; "echo $ IMG: xong" '

4 ls * .png | song song 'convert {} {.}. jpeg; echo {}: xong '

5 pexec -r * .png -i% s -o% s.jpg -c 'pngtopnm | pnmtojpeg '

5 ls * .png | song song 'pngtopnm <{} | pnmtojpeg> {} .jpg '

6 cho p trong * .png; thực hiện echo $ {p% .png}; xong | \
pexec -f - -i% s.png -o% s.jpg -c 'pngtopnm | pnmtojpeg '

6 ls * .png | song song 'pngtopnm <{} | pnmtojpeg> {.}. jpg '

7 LIST = $ (cho p in * .png; do echo $ {p% .png}; done)
pexec -r $ LIST -i% s.png -o% s.jpg -c 'pngtopnm | pnmtojpeg '

7 ls * .png | song song 'pngtopnm <{} | pnmtojpeg> {.}. jpg '

8 pexec -n 8 -r * .jpg -y unix -e IMG -c \
'pexec -j -m blockread -d $ IMG | \
jpegtopnm | tỷ lệ pnm 0.5 | pnmtojpeg | \
pexec -j -m blockwrite -s th_ $ IMG '

8 Kết hợp GNU song song, tương đông và GNU mà không.

8 ls * jpg | song song -j8 'sem --id blockread cat {} | jpegtopnm | ' \
'pnmscale 0.5 | pnmtojpeg | sem --id blockwrite cat> th_ {} '

8 Nếu việc đọc và ghi được thực hiện trên cùng một đĩa, quá trình này có thể nhanh hơn vì chỉ có một quá trình
sẽ đọc hoặc viết:

8 ls * jpg | song song -j8 'sem --id diskio cat {} | jpegtopnm | ' \
'pnmscale 0.5 | pnmtojpeg | mèo sem --id diskio> th_ {} '

KHÁC BIỆT GIỮA xjobs GNU Song song
xjobs cũng là một công cụ để chạy các công việc song song. Nó chỉ hỗ trợ chạy các công việc trên
máy tính cục bộ.

xjobs xử lý tệ với các ký tự đặc biệt giống như xargs. Xem phần KHÁC BIỆT
GIỮA xargs GNU Song song.

Đây là các ví dụ từ xjobstrang người đàn ông với trang tương đương sử dụng GNU song song, tương đông:

1 ls -1 * .zip | giải nén xjobs

1 ls * .zip | giải nén song song

2 ls -1 * .zip | xjobs -n giải nén

2 ls * .zip | giải nén song song> / dev / null

3 tìm thấy . -tên '* .bak' | xjobs gzip

3 tìm thấy . -tên '* .bak' | gzip song song

4 ls -1 * .jar | sed 's / \ (. * \) / \ 1> \ 1.idx /' | xjobs jar tf

4 ls * .jar | jar song song tf {} '>' {} .idx

5 tập lệnh xjobs -s

5 kịch bản mèo | song song

6 mkfifo / var / run / my_name_pipe; xjobs -s / var / run / my_name_pipe & echo unzip 1.zip >>
/ var / run / my_name_pipe; echo tar cf /backup/myhome.tar / home / me >> / var / run / my_name_pipe

6 mkfifo / var / run / my_name_pipe; cat / var / run / my_name_pipe | giải nén song song & echo 1.zip
>> / var / run / my_name_pipe; echo tar cf /backup/myhome.tar / home / me >>
/ var / run / my_name_pipe

KHÁC BIỆT GIỮA xin chào GNU Song song
xin chào cũng là một công cụ để chạy các công việc song song. Nó không hỗ trợ các công việc đang chạy trên
máy tính từ xa.

xin chào khuyến khích sử dụng bí danh BASH và các hàm BASH thay vì tập lệnh. GNU song song, tương đông
sẽ không bao giờ hỗ trợ bí danh đang chạy (xem tại sao
http://www.perlmonks.org/index.pl? node_id = 484296). Tuy nhiên, các tập lệnh, các lệnh đã soạn, hoặc
các chức năng được xuất với xuất khẩu -f làm việc tốt.

xin chào tạo ra nhiều thông tin trạng thái trên stderr (lỗi chuẩn) khiến nó
khó sử dụng đầu ra stderr (lỗi chuẩn) của công việc trực tiếp làm đầu vào cho công việc khác
chương trình.

Đây là ví dụ từ xin chàotrang người đàn ông với trang tương đương sử dụng GNU song song, tương đông:

prll -s 'mogrify -flip $ 1' * .jpg

song song mogrify -flip ::: * .jpg

KHÁC BIỆT GIỮA dxarg GNU Song song
dxarg cũng là một công cụ để chạy các công việc song song.

dxarg không giải quyết tốt nhiều công việc đồng thời hơn MaxStartups của SSHD. dxarg is
chỉ được xây dựng cho các công việc chạy từ xa, nhưng không hỗ trợ chuyển tệp.

KHÁC BIỆT GIỮA mdm / người trung gian GNU Song song
người trung gian(mdm) cũng là một công cụ để chạy các công việc song song.

Đây là các bản viết lại của http://mdm.berlios.de/usage.html được chuyển sang GNU song song, tương đông:

seq 19 | song song, tương đông tên hê -o - | loại -n > kết quả

làm sao các tập tin | song song, tương đông cmd

tìm dir -execdir mà không cmd {} \;

KHÁC BIỆT GIỮA áp dụng GNU Song song
áp dụng có thể chạy các công việc song song trên máy tính cục bộ.

Đây là các ví dụ từ áp dụngtrang người đàn ông với trang tương đương sử dụng GNU song song, tương đông:

1 xapply '(cd% 1 && tạo tất cả)' * /

1 song song 'cd {} && làm cho tất cả' ::: * /

2 xapply -f 'diff% 1 ../version5/%1' kê khai | hơn

2 khác biệt song song {} ../ version5 / {} <kê khai | hơn

3 xapply -p / dev / null -f 'diff% 1% 2' danh sách kiểm tra1

3 song song --xapply khác biệt {1} {2} :::: manifest1 danh sách kiểm tra1

4 xapply 'thụt lề' * .c

4 thụt lề song song ::: * .c

5 find ~ ksb / bin -type f! -perm -111-dấu tay | xapply -f -v 'chmod a + x' -

5 find ~ ksb / bin -type f! -perm -111-dấu tay | song song -v chmod a + x

6 tìm * / -... | fmt 960 1024 | xapply -f -i / dev / tty 'vi' -

6 sh <(tìm * / -... | song song -s 1024 echo vi)

6 tìm * / -... | song song -s 1024 -Xuj1 vi

7 tìm ... | xapply -f -5 -i / dev / tty 'vi' - - - - -

7 sh <(tìm ... | song song -n5 echo vi)

7 tìm ... | song song -n5 -uj1 vi

8 xapply -fn "" / etc / passwd

8 tiếng vọng song song -k / etc / passwd

9 tr ':' '\ 012' / etc / passwd | xapply -7 -nf 'chown% 1% 6' - - - - - - -

9 tr ':' '\ 012' / etc / passwd | song song -N7 chown {1} {6}

10 xapply '[-d% 1 / RCS] || echo% 1 '* /

10 song song '[-d {} / RCS] || echo {} '::: * /

11 xapply -f '[-f% 1] && echo% 1' Danh sách | ...

11 song song '[-f {}] && echo {}' <Danh sách | ...

KHÁC BIỆT GIỮA paexec GNU Song song
paexec có thể chạy công việc song song trên cả máy tính cục bộ và máy tính từ xa.

paexec yêu cầu các lệnh in một dòng trống làm đầu ra cuối cùng. Điều này có nghĩa là bạn sẽ
phải viết một trình bao bọc cho hầu hết các chương trình.

paexec có một cơ sở phụ thuộc vào công việc để một công việc có thể phụ thuộc vào một công việc khác sẽ được thực hiện
thành công. Phân loại của một người nghèo làm cho.

Đây là các ví dụ từ paexecdanh mục ví dụ của tương đương bằng GNU
song song, tương đông:

1_div_X_run:
../../paexec -s -l -c "` pwd` / 1_div_X_cmd "-n +1 <
tiếng vọng song song {} '|' `pwd` / 1_div_X_cmd <

all_substr_run:
../../paexec -lp -c "` pwd` / all_substr_cmd "-n +3 <
tiếng vọng song song {} '|' `pwd` / all_substr_cmd <

cc_wrapper_run:
../../paexec -c "viv CC = gcc CFLAGS = -O2` pwd` / cc_wrapper_cmd "\
-n 'host1 host2' \
-t '/ usr / bin / ssh -x '<
tiếng vọng song song {} '|' "env CC = gcc CFLAGS = -O2` pwd` / cc_wrapper_cmd "\
-S host1, host2 <
# Điều này không hoàn toàn giống nhau, nhưng tránh lớp bọc
song song gcc -O2 -c -o {.}. o {} \
-S host1, host2 <

topper_run:
../../paexec -lp -c "` pwd` / toupper_cmd "-n +10 <
tiếng vọng song song {} '|' ./toupper_cmd <
# Không có trình bao bọc:
tiếng vang song song {} '| awk {print \ toupper \ (\ $ 0 \)} '<

KHÁC BIỆT GIỮA bản đồ GNU Song song
bản đồ coi nó như một tính năng để có ít tính năng hơn và làm như vậy nó cũng xử lý góc
các trường hợp không chính xác. Nhiều GNU song song, tương đôngmã của là để xử lý các trường hợp góc một cách chính xác trên
mọi nền tảng, vì vậy bạn sẽ không gặp phải bất ngờ khó chịu nếu một người dùng chẳng hạn lưu một tệp
gọi là: My anh trai 12 " Records.txt

bản đồVí dụ cho thấy cách xử lý các ký tự đặc biệt không thành công trên các ký tự đặc biệt:

echo "The Cure"> My \ brother \'s's \ 12 \ "\ ghi lại

ls | map 'echo -n `gzip <"% "| wc -c`; echo -n '* 100 /'; wc -c <"%" '| bc

Nó hoạt động với GNU song song, tương đông:

ls | song song 'echo -n `gzip <{} | wc -c`; echo -n '* 100 /'; wc -c <{} '| bc

Và bạn thậm chí có thể lấy trước tên tệp:

ls | song song --tag '(echo -n `gzip <{} | wc -c' '* 100 /'; wc -c <{}) | bc '

bản đồ không có hỗ trợ cho việc phân nhóm. Vì vậy, điều này cho kết quả sai mà không có bất kỳ cảnh báo nào:

song song perl -e '\ $ a = \ "1 {} \" x10000000 \; print \ \ $ a, \ "\\ n \"' '>' {} ::: abcdef
ls -labcdef
song song -kP4 -n1 grep 1> out.par ::: abcdef
map -p 4 'grep 1' abcdef> out.map-unbuf
map -p 4 'grep --line-buffered 1' abcdef> out.map-linebuf
map -p 1 'grep --line-buffered 1' abcdef> out.map-serial
ls -l out *
md5sum ra *

Tài liệu cho thấy một cách giải quyết, nhưng không chỉ kết hợp stdout (đầu ra tiêu chuẩn)
với stderr (lỗi tiêu chuẩn), nó cũng không thành công hoàn toàn đối với một số công việc nhất định (và thậm chí có thể
được coi là ít đọc hơn):

echo song song -n {} ::: 1 2 3

bản đồ -p 4 'echo -n% 2> & 1 | sed -e "s / ^ / $$: /" '1 2 3 | sắp xếp | cut -f2- -d:

bản đồ không thể xử lý các tùy chọn đi kèm: bản đồ -vp 0 bỏ lỡ điều này không

bản đồ không có dấu phân tách đối số trên dòng lệnh, nhưng sử dụng đối số đầu tiên
như lệnh. Điều này làm cho việc trích dẫn khó hơn một lần nữa có thể ảnh hưởng đến khả năng đọc. Đối chiếu:

map -p 2 perl \\\ -ne \\\ \\\ '/ ^ \\\\ S + \\\\ s + \\\\ S + \\\ $ / \\\ và \\\ print \\\ \\\ $ ARGV, \\\ "\\\\ n \\\" \\\ '*

song song -q perl -ne '/ ^ \ S + \ s + \ S + $ / và in $ ARGV, "\ n"' ::: *

bản đồ có thể thực hiện nhiều đối số với thay thế ngữ cảnh, nhưng không thể không có thay thế ngữ cảnh:

song song --xargs echo 'BEGIN {' {} '} HẾT' ::: 1 2 3

bản đồ không đặt giá trị thoát tùy theo việc một trong các công việc không thành công:

sai song song ::: 1 || echo Công việc thất bại

bản đồ sai 1 || echo Không bao giờ chạy

bản đồ yêu cầu Perl v5.10.0 khiến việc sử dụng trên các hệ thống cũ trở nên khó khăn hơn.

bản đồ không có cách nào sử dụng% trong lệnh (GNU Parallel có tôi để chỉ định một
chuỗi thay thế hơn {}).

Thiết kế bởi bản đồ là tùy chọn không tương thích với xargs, nó không có chức năng thực thi công việc từ xa,
cách có cấu trúc để lưu kết quả, nhiều nguồn đầu vào, chỉ báo tiến trình, có thể định cấu hình
dấu phân cách bản ghi (chỉ dấu phân cách trường), ghi nhật ký các công việc đang chạy với khả năng tiếp tục,
giữ đầu ra theo thứ tự như đầu vào, - xử lý ống và động
hết giờ.

KHÁC BIỆT GIỮA Ladon GNU Song song
Ladon có thể chạy song song nhiều công việc trên các tệp.

Ladon chỉ hoạt động trên các tệp và cách duy nhất để chỉ định tệp là sử dụng chuỗi cầu được trích dẫn
(chẳng hạn như \ *. jpg). Không thể liệt kê các tệp theo cách thủ công.

Là chuỗi thay thế, nó sử dụng FULLPATH DIRNAME BASENAME EXT RELDIR RELPATH

Chúng có thể được mô phỏng bằng GNU song song, tương đông bằng cách đưa cái này vào ~ / .parallel / config:

--rpl 'FULLPATH $ _ = :: shell_quote ($ _); chomp ($ _ = qx {readlink -f $ _});'
--rpl 'DIRNAME $ _ = :: shell_quote (:: dirname ($ _)); chomp ($ _ = qx {readlink -f $ _});'
--rpl 'BASENAME s:. * / ::; s: \. [^/.] + $ ::; '
--rpl 'EXT s:. * \. ::'
--rpl 'RELDIR $ _ = :: shell_quote ($ _); chomp (($ _, $ c) = qx {readlink -f $ _; pwd}); s: \ Q $ c / \ E ::; $ _ = :: dirname ($ _); '
--rpl 'RELPATH $ _ = :: shell_quote ($ _); chomp (($ _, $ c) = qx {readlink -f $ _; pwd}); s: \ Q $ c / \ E ::; '

Ladon xử lý không tốt với tên tệp có chứa "và dòng mới, và nó không thành công với đầu ra lớn hơn
trên 200k:

ladon '*' - seq 36000 | wc

VÍ DỤ TỪ Ladon HƯỚNG DẪN

Giả định rằng '--rpl's ở trên được đưa vào ~ / .parallel / config và nó được chạy
dưới một lớp vỏ có hỗ trợ nhấp nháy '**' (chẳng hạn như zsh):

1 ladon "** / *. txt" - echo RELPATH

1 echo song song RELPATH ::: ** / *. txt

2 cái muôi "~ / Tài liệu /** / *. pdf "- shasum FULLPATH> hashes.txt

2 song song shasum FULLPATH ::: ~ / Tài liệu /** / *. pdf> hashes.txt

3 ladon -m thumbs / RELDIR "** / *. jpg" loading = "lazy" - chuyển đổi FULLPATH -thumbnail 100x100 ^ -gravity
giữa -extent 100x100 ngón tay cái / RELPATH

3 song song mkdir -p ngón tay cái / RELDIR \; chuyển đổi FULLPATH -thumbnail 100x100 ^ -trung tâm trọng lực
-tixtent 100x100 ngón tay cái / RELPATH ::: ** / *. jpg

4 cái muôi "~ / Nhạc /* .wav "- khập khiễng -V 2 FULLPATH DIRNAME / BASENAME.mp3

4 song song lame -V 2 FULLPATH DIRNAME / BASENAME.mp3 ::: ~ / Nhạc /* .wav

KHÁC BIỆT GIỮA CụmSSH GNU Song song
ClusterSSH giải quyết một vấn đề khác với GNU song song, tương đông.

ClusterSSH mở một cửa sổ đầu cuối cho mỗi máy tính và sử dụng một cửa sổ chính mà bạn có thể chạy
cùng một lệnh trên tất cả các máy tính. Điều này thường được sử dụng để quản lý một số
máy tính gần như giống hệt nhau.

GNU song song, tương đông chạy các lệnh giống nhau (hoặc khác nhau) với các đối số khác nhau song song
có thể sử dụng máy tính từ xa để trợ giúp tính toán. Nếu có nhiều máy tính được liệt kê trong
-S GNU song song, tương đông chỉ có thể sử dụng một trong những công việc này (ví dụ: nếu có 8 công việc phải chạy và một
máy tính có 8 lõi).

GNU song song, tương đông có thể được sử dụng như một phiên bản ClusterSSH của người nghèo:

song song, tương đông --không -S máy chủ-a, máy chủ-b làm_thứ foo thanh

Sử dụng trực tuyến song song bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

  • 1
    AstrOrzNgười Chơi
    AstrOrzNgười Chơi
    AstrOrz Player là trình phát đa phương tiện miễn phí
    phần mềm, một phần dựa trên WMP và VLC. Các
    người chơi theo phong cách tối giản, với
    hơn mười màu chủ đề và cũng có thể
    b ...
    Tải xuống AstrOrzPlayer
  • 2
    phim trường
    phim trường
    Kodi Movistar+ TV là một ADDON cho XBMC/
    Kodi que allowe disponer de un
    bộ giải mã dịch vụ IPTV
    Tích hợp Movistar en uno de los
    trung tâm truyền thông ...
    Tải phimstartv
  • 3
    Mã :: Khối
    Mã :: Khối
    Code::Blocks là mã nguồn mở, miễn phí,
    đa nền tảng C, C++ và Fortran IDE
    được xây dựng để đáp ứng những nhu cầu khắt khe nhất
    của người dùng của nó. Nó được thiết kế rất
    mở rộng ...
    Tải xuống mã::Khối
  • 4
    Ở giữa
    Ở giữa
    Giao diện Minecraft giữa hoặc nâng cao
    và Theo dõi Dữ liệu / Cấu trúc là một công cụ để
    hiển thị tổng quan về Minecraft
    thế giới mà không thực sự tạo ra nó. Nó
    có thể ...
    Tải về giữa
  • 5
    MSYS2
    MSYS2
    MSYS2 là một tập hợp các công cụ và
    thư viện cung cấp cho bạn một
    môi trường dễ sử dụng để xây dựng,
    cài đặt và chạy Windows gốc
    phần mềm. Nó lừa ...
    Tải xuống MSYS2
  • 6
    libjpeg-turbo
    libjpeg-turbo
    libjpeg-turbo là codec hình ảnh JPEG
    sử dụng hướng dẫn SIMD (MMX, SSE2,
    NEON, AltiVec) để tăng tốc đường cơ sở
    Bật nén và giải nén JPEG
    x86, x8 ...
    Tải xuống libjpeg-turbo
  • Khác »

Lệnh Linux

Ad