Вы должны иметь /dev/vboxdrv
принадлежавший группе "vboxuser" и пользователю, начинающему контейнер в той группе. Добавьте, что пользователь группе затем удостоверяется, что существуют полномочия группы (т.е. chmod 660 /dev/vboxdrv
).
grep -E '^[^0-9]*1234([^0-9]+1234)*[^0-9]*$' file.txt
^[^0-9]*1234
: найти первое совпадение 1234
, которому могут предшествовать нецифровые символы. ([^0-9]+1234)*
: могут быть дальнейшие итерации 1234
, но они должны быть отделены от первых 1234
(и других 1234
) нецифровыми символами (поэтому используйте +
). [^0-9]*$
: соответствует всей строке (с $
). После финала 1234
могут быть нецифровые символы (но не обязательно, следовательно *
). Если 1234
должны быть разделены пробелами (или находиться в начале или в конце строки), то используйте
grep -E '^([^0-9]* )?1234(( [^0-9]*)? 1234)*( [^0-9]*)?$'
^([^0-9]* )?
: в начале могут быть нецифровые символы, если они заканчиваются пробелом. 1234
: найти первое (необходимое) совпадение 1234
. (( [^0-9]*)? 1234)*
: Я проработаю скобки в обратном порядке. Могут быть (ноль или больше) дополнительные копии 1234
, но им должен предшествовать пробел, т.е. 1234
. Перед этим пробелом могут стоять нецифровые символы, что нормально, если они отделены от предыдущей копии 1243
другим пробелом, т.е. ( [^0-9]*)?
. ( [^0-9]*)?$
: в конце могут быть нецифровые символы, если им предшествует пробел. awk
может быть удобнее, чем grep
при этом.
Установите разделитель полей на прогоны нецифровых символов, затем перебирайте поля и выводите строку только в том случае, если каждое непустое поле в точности равно 1234
awk -F'[^[:digit:]]+' '{
for(i=1; i<=NF; ++i)
if (($i) && ($i != 1234)) next
}; {print}' file.txt
Найдите число либо в начале строки ( ^
), либо которому предшествует нецифровое число ( [^ 0-9]
), а также в конце ( $
или [^ 0-9]
).
grep -E '(^|[^0-9])1234($|[^0-9])' file.txt
Если вы хотите разрешить нули в начале, добавьте 0 *
перед числом.
grep -E '(^|[^0-9])0*1234($|[^0-9])' file.txt
Если вы также хотите отклонить строки, содержащие любую последовательность из одной или нескольких цифр, которая не является частью вхождения этого конкретного числа, то вы ищете строки, состоящие из последовательностей, чередующихся с одной или несколькими нецифровыми цифрами и этим конкретным числом. , что в основном равно ([^ 0-9] +1234) *
. Строка может начинаться и заканчиваться как числом, так и нецифровым, тогда как внутренние последовательности нецифров могут быть не пустыми. Кроме того, строка должна содержать номер хотя бы один раз. Собираем все вместе:
grep -xE '[^0-9]*1234([^0-9]+1234)*[^0-9]*' file.txt