Если вы хотите точно сопоставить часть, которая находится между C
и [ПУТЬ :. ..]
(и если предположить, что те *
в вашем примере предназначены только для акцента, а не являются частью фактических данных), вы можете сделать:
awk '
!start {all_strings[$0]; next}
/^C/ {
key = $0
# strip the leading C <word>:
sub(/^C[[:blank:]]+[^[:blank:]]+[[:blank:]]*/, "", key)
# strip the trailing [...]:
sub(/[[:blank:]]*\[[^]]*][[:blank:]]*$/, "", key)
selected = key in all_strings
}
selected' fileB start=1 fileA
Помимо дополнительной надежности (например, Бактериальная секреция
будет соответствовать только записи Бактериальной секреции
, но не также Бактериальной секреторной системе
), она также очень эффективна в том смысле, что файлы считываются только один раз и соответствие - это только один поиск по хеш-таблице, в отличие от нескольких поисков подстрок или сопоставлений регулярных выражений.
Мы должны отделить драйверы от файлов описания принтера и от фильтров.
Приложениям нужны драйверы (либо сами по себе, либо предоставляемые операционной системой )для преобразования любого формата страницы, который они используют, в язык, понятный операционной системе. Насколько я помню, клиенты MS Windows обычно либо генерируют Postscript напрямую, либо чаще используют GDI, который Windows затем преобразует в любой язык, понятный принтеру :Adobe Postscript, Adobe PDF, Epson ESC/P или ESC/P2, HP PCL, IBM AFP… В Википедии есть обширный список .
Фильтры работают как драйверы на стороне сервера -, в том смысле, что они будут принимать входные данные в некотором формате, сгенерированном приложением, и преобразовывать их в какой-либо формат, принятый принтером. Они могут понадобиться, когда клиент по какой-то причине не может сгенерировать формат, понятный принтеру.
Насколько я знаю, Cups не нуждается в драйверах или фильтрах, но может использовать описания принтеров, чтобы знать возможности принтеров и передавать эту информацию клиентам. PPD(Файлы описания принтера Postscript )обычно доступны для принтеров Postscript, и я предполагаю, что также PDF-файлы, но я предполагаю, что они не существуют для MS GDI и других меньших принтеров, таких как Epson ESC/P2 или HP. ПКЛ; так что я вижу потребность, возможно, не в драйверах, но был бы удобен некоторый эквивалент PPD, который можно было бы предоставить в (проприетарных )пакетах драйверов.
Кстати, что такое UL или SU в качестве альтернативы ошибке сервера, как в комментарии Марко выше?
Похоже, что CUPS вообще не нужны файлы PPD, если клиент (ex. :Пользователь Windows )уже использовал драйвер принтера для вывода задания в каком-либо формате (, например. :PS )принято принтером. В этом случае CUPS действует только как посредник, а очередь принтера может быть определена как необработанная очередь.Только что проверил этот cenario, и он работал просто отлично.