GNU Parallel: как передать идентификатор задания команде

#gnu-parallel

#gnu-parallel

Вопрос:

Предположим, я запускаю gnu parallel на массиве элементов, полученных из standard in, и разделяю в соответствии с некоторыми критериями:

 cat content | parallel -j 4 my_command
  

Как мне получить доступ к номеру задания, чтобы я мог передать в command в качестве аргумента номер задания / идентификатор параллельного выполнения (чтобы каждый блок параллельного выполнения имел уникальный номер):

 cat content | parallel -j 4 my_command -n ???
  

(Возможно ли это вообще? Просматриваю справочные страницы на данный момент)

Ответ №1:

Вы ищете строку для замены {#}

 cat content | parallel -j 4 my_command -n {#}
  

Это также упоминается в шпаргалке: https://www.gnu.org/software/parallel/parallel_cheat.pdf

Комментарии:

1. Пожалуйста, добавьте к своему ответу еще какое-нибудь объяснение, чтобы другие могли извлечь из него урок — что вы изменили и почему?

2. Как мне получить доступ к номеру задания, отправленному этим, в моем коде внутри my_command?

3. @GeoffreyAnderson Вы получаете к нему доступ, как к любому другому аргументу (argv).