я записал немного сценария жемчуга, которые делают это
#!/usr/bin/perl
do { open($fh[$_], "<$ARGV[$_]") or die("'$ARGV[$_]' does not exist") } for(0..$#ARGV);
for($i=0;;$i++) {
$j=$#ARGV+1;
$fh = $fh[$i%$j];
if ( $_ = <$fh> ) {
print $_;
} else {
$end |= 2**($i%$j);
}
if($end == (2**($j))-1) {
last;
}
}
close($_) for(@fh);
сохраните его в файл вызов он как
script.pl file1 file2 file3 ... > merge
Это - по крайней мере одна возможность решить Вашу задачу.
Можно ли объяснить немного больше, что Вы делаете? Существует несколько "чисел", связанных с Вашей программой.
Примечание: В моих примерах знак доллара ($
) обозначает командную строку и не предназначен, чтобы быть введенным как часть команды.
Идентификатор процесса
Когда прогоны программы в Unix это присвоило идентификатор процесса. Скажите, что у меня есть программа sleep
, и я выполняю его в течение 100 секунд.
$ sleep 10000
Я могу затем узнать его идентификатор процесса с помощью команды ps
. Идентификатор процесса был бы 9263
, например:
$ ps -eaf|grep sleep
saml 9263 5736 0 05:48 pts/1 00:00:00 sleep 10000
Задание Backgrounded
Когда программа является фоном, она может продолжить работать, не будучи непосредственно подключенным к оболочке от того, где она выполнялась.
$ sleep 10000 &
[1] 9370
Здесь я запускаю программу sleep
в течение 10 000 секунд. Амперсанд (&
) в конце говорит оболочку фону это. Когда задания являются фоном they'reassigned задание #. В этом случае это было присвоенное задание № 1. 9370
идентификатор процесса.
Мы можем узнать, какие задания выполняют использование jobs
команда:
$ jobs
[1]+ Running sleep 10000 &
Мы можем использовать задание # для действия на этот процесс или путем уничтожения его или возвращения его в передний план.
$ kill %1
$ fg
-or-
$ fg %1
в и пакетные команды
Существуют дополнительные места, где "числа" разоблачают в задании # способность. Запланированные задачи, которые стоятся в очереди с помощью команд at
или batch
также присвоенные номера.
$ at -f mycrontest.sh 10pm tomorrow
job 14 at Sun Jul 8 22:00:00 2007
Вычислите кластеризирующиеся технологии
Далее все еще, если Вы - сайт, использует кластеризирующуюся технологию, такую как Механизм Планировщика/Сетки Сетки, SLURM или другие, эти системы также имеют # задания, присвоил каждой отдельной задаче.
#!/bin/bash
cobol_program &
echo "The COBOL program is running in the background with PID: $!"
Посмотрите man
страница для bash
под 'Специальными Параметрами'