Ответ аналогичен чоробе (я написал это, не видя вашего, клянусь!), Но обрабатывает регистр заголовка без жесткого кодирования:
#!/usr/bin/perl
use strict;
use warnings;
my %links = (
yahoo => "www.yahoo.com",
google => "www.google.com",
);
$links{"the $_"} = $links{$_} for keys %links;
while (<>) {
s{\\MakeLink\[(.+?)\]\{\}}{
sprintf "\\MakeLink[%s]{%s}",
$1,
exists $links{$1} ? $links{$1}
: join " ", map {ucfirst lc} split " ", $1;
}eg;
print;
}
Запуск:
$ perl link.pl input
A very popular site on the internet was
\MakeLink[yahoo]{www.yahoo.com} but was surpassed by
\MakeLink[google]{www.google.com} due to its
MakeLink[search engine]{}.
Due to its dominance
\MakeLink[the google]{www.google.com} has had to deal with
\MakeLink[antitrust issues]{Antitrust Issues}.
cpulimit -fl 50 -- tar xzvf abc.tar.gz
лимит процессора:
cpulimit -- limits the CPU usage of a process
-l, --limit=N
percentage of CPU allowed from 1 up. Usually 1 - 100, but can be
higher on multi-core CPUs. (mandatory)
-f, --foreground
run cpulimit in foreground while waiting for launched process to
finish
• cpulimit always sends the SIGSTOP and SIGCONT signals to a process,
both to verify that it can control it and to limit the average
amount of CPU it consumes. This can result in misleading (annoy‐
ing) job control messages that indicate that the job has been
stopped (when actually it was, but immediately restarted). This
can also cause issues with interactive shells that detect or other‐
wise depend on SIGSTOP/SIGCONT. For example, you may place a job
in the foreground, only to see it immediately stopped and restarted
in the background.
Ограничивать загрузку ЦП следует только в том случае, если он перегревается или возникает какая-либо проблема, которая может возникнуть при полной загрузке ЦП или когда вы не хотите, чтобы задача выполнялась так быстро.
Если его не использовать полностью, это просто тратит циклы ЦП на «бездействующую задачу»
Если проблема в том, что вы предпочитаете, чтобы другой процесс получал эти циклы ЦП с приоритетом, то решение состоит в том, чтобы понизить приоритет tar
/ gzip
или, другими словами, увеличить его приятность .
Например, используя:
nice 20 tar...
Где 20 — высшая любезность. Таким образом, tar
получит немного циклов ЦП, если другие процессы потребуют их, но по-прежнему будет использовать 100% ЦП, когда системе больше нечего делать.
Теперь, если ваш другой процесс действительно использует приоритеты реального времени, вам не нужно этого делать, так как планировщик должен отдавать приоритет процессам реального времени над обычными процессами, поэтому может случиться так, что ЦП не является ресурсом, который ваш процесс не может удержаться, и ни изменение приоритета, ни снижение использования ЦП tar
не помогут.
Вы также можете использовать ionice
наtar
:
nice 20 ionice -c idle tar...
Цитирование справочной страницы ionice
:
Idle A program running with idle I/O priority will only get disk time when no other program has asked for disk I/O for a defined grace period. The impact of an idle I/O process on normal system activity should be zero.