Реализация GNU grep
grep
, которая у вас есть в Linux, может использовать стиль PCRE -"отрицательный взгляд -вперед утверждений". PCRE — это сокращение от Perl-совместимых регулярных выражений. Это расширения стандартных регулярных выражений POSIX, и синтаксис того, что вы хотите сделать, выглядит примерно так
q(?!u)
С GNUgrep
:
grep -P 'q(?!u)' file
найдет все строки, содержащие q
, за которыми не следует (непосредственно )с u
.
Дополнительную информацию об утверждениях просмотра с помощью PCRE можно найти, например, по адресу
Стандартное регулярное выражение POSIX может использовать
q[^u]
т. е. «q
следует за (непосредственно )чем-то, что не является u
». Однако этот шаблон также соответствует не-u
символу , тогда как выражение с отрицательным видом -впереди не соответствует символу после q
. Это означает, что приведенное выше выражение не будет соответствовать, например, q
в конце строки. Для этого вы могли бы использовать
q([^u]|$)
которое является расширенным регулярным выражением (используйте grep
с -E
для этого ).
Что касается вас "слово/строка" :слово представляет собой строку из словесных символов , обычно символов, соответствующих [[:alpha:]]
. Строка — это любая строка . Выражение q(?!u)
вверху будет соответствовать любой строке , содержащей q
, за которой непосредственно не следует ()с помощью u
.
Чтобы сопоставить слов , содержащих q
, но не последовательность qu
, вы можете сделать либо
grep -P -o -w '[[:alpha:]]*q(?!u)[[:alpha:]]*'
т.е. извлечь все полные слова (только ), которые содержат q
, за которым не следует u
,или вы можете сделать это в два этапа:
grep -o -w '[[:alpha:]]*q[[:alpha:]]*' | grep -v qu
Для этого не потребуется PCRE (и, следовательно, не будет -P
), и он получит все слова, содержащие q
, а затем удалит(со вторымgrep
)слова, которые содержат qu
. ].
Пример:
$ grep -o -w '[[:alpha:]]*q[[:alpha:]]*' /usr/share/dict/words | grep -v qu
Iraq
Iraqi
Iraqian
Louiqa
miqra
nastaliq
Pontacq
q
qasida
qere
qeri
qintar
qoph
Saqib
shoq
Tareq
Вариант PCRE будет дополнительно возвращать zaqqum
, поскольку он содержит q
, за которым не следует u
.
То, как вы это сделаете, зависит от того, как выглядят ваши данные и что вы на самом деле хотите сопоставить.
У меня работал стандартный драйвер dymo, который идет в комплекте с чашками "DYMO Label Printer". В Ubuntu вы можете выбрать его из Базы данных поиска -> Dymo -> Принтер этикеток Dymo. Надеюсь, это поможет, и вы сможете адаптироваться к Rasperry Pi.
У меня нет решения, но оно работает в моей настройке. Я надеюсь, что обмен этой информацией с вами может помочь вам отладить или решить вашу проблему.
Я только что настроил свою модель Raspberry Pi Model B под управлением безголового Raspbian 10 в качестве сервера CUPS. Один из моих принтеров — LaberWriter 450. Я установил драйверы из этого репозитория , и он сразу заработал.
Raspberry и Dymo требуют около 3 секунд для начала печати, а скорость печати такая же, как и при USB-подключении.