Как я могу исключить строку с помощью регулярного выражения?

Действительно используйте dmcrypt, это - фактическая подсистема шифрования стандартного диска в Linux.

На машинах разработчика установите cryptmount и настройте его, чтобы позволить монтироваться как некорневой пользователь. Это является громоздким, поскольку у Вас есть к hardcode путь к изображению (и точка монтирования) в /etc/cryptmount/cmtab.

upgrade {
    keyformat=luks
    dev=/home/bob/upgrade/image.enc
    dir=/mnt/upgrade
}

Смонтироваться и размонтироваться:

cryptmount -m upgrade
cryptmount -u upgrade

С другой стороны, настроенный sudo управляет, чтобы позволить разработчикам работать cryptsetup и losetup без пароля.

Cmnd_Alias CryptLoop = cryptsetup luksOpen * *, cryptsetup remove *, losetup * *
bob ALL=(ALL) NOPASSWD: CryptLoop

5
10.02.2015, 12:45
2 ответа
sed '/timetosa/d' <test

... сделаю это. Альтернативно:

sed -n '/timetosa/!p' <test

все еще, хотя (разрешено ли это или нет) :

grep -v timetosa <test

... будет самым исполнительным решением трех - и, вероятно, значительным краем.

Благодаря @sparhawk я нашел свой путь к документации Zaproxy документации . Основываясь на этом:

  • URL Regexs
    • В включают в *, исключить из * Панели и Зарегистрированных индикаторов Индикаторы Аутентификация Панель Можно вводить регулярные выражения для определения исключенных URL.

... И следующее я думаю, что вы пытаетесь фильтровать Contexts ? Согласно документам, вы можете сделать как включать , так и , и Списки исключения:

  • Исключить из контекста
    • Это позволяет управлять URL-адресами, которые будут исключены из контекста.
    • Вам нужно только указать Regexs для URL-адресов, которые вы не хотите включать, но в соответствии с одним или несколькими из включают Regexes.

Итак, вы можете исключить некоторых ваших предыдущих включений.

Тем не менее, это может быть, это может быть первым ребенком этого не полностью Неренет Необходимость - Документы также упоминают об этом в разделе :

  • вызывают приложения

    • Другие приложения могут быть вызваны прохождением в контекстной информации, такой как URL из выбранного сообщения.
    • Так, например, NMAP может быть вызван прохождение сайта, которое вы хотите, чтобы он сканировать.

    • Приложения настраиваются с использованием параметров на экране параметров .

2
27.01.2020, 20:42

Ваша ~/Библиотека, ~/Документы, Приложения... и т.д. все создаются с 700 в качестве разрешения. Поиск пропустит их. Если вы хотите, чтобы они были включены в вашу базу данных поиска, измените разрешение на 755.

chmod 755 ~/Library
sudo /usr/libexec/locate.updatedb
-121--111630-

Ниже приведен способ проверки, совместимый с POSIX, является ли dir пустым с использованием только встроенных конструкций оболочки. Команда set устанавливает позиционные аргументы в файлы с точками (включая всегда существующие . и .. ), за которыми следуют файлы без точек. Если каталог пуст, то . * glob соответствует только . и .. , и * не совпадает ни с чем таким образом остается нерасширенным.

set dir/.* dir/*
[ "$1" = "dir/." ] && [ "$2" = "dir/.." ] && ! [ -e "$3" ] && ! [ -L "$3" ]

Это работает на ATT ksh, но не работает с некоторыми оболочками, которые пропускают . и .. записей. Чтобы быть более портативным, необходимо также разрешить . * ничего не соответствовать.

set dir/.* dir/*
case $# in
  0) true;; # can't happen in a standard shell, this is for shells with nullglob
  2) { [ "$1" = "dir/.*" ] && [ "$2" = "dir/*" ] && ! [ -e "$1" ] && ! [ -L "$1" ] && ! [ -e "$2" ] && ! [ -L "$2" ]; } ||
     { [ "$1" = "dir/." ] && [ "$2" = "dir/.." ]; };;
  3) [ "$1" = "dir/." ] && [ "$2" = "dir/.." ] && ! [ -e "$3" ] && ! [ -L "$3" ];;
  *) false;;
esac

Достаточно свежие версии ksh позволяют упростить тест, но я думаю, что AIX слишком старые (даже его ksh93 ). Вот как можно проверить, является ли dir пустым в достаточно недавнем ksh93:

FIGNORE='.?(.)'; set -- ~(N)dir/*; [[ $# -eq 0 ]]

или же

FIGNORE=; set -- dir/*; [[ $# -eq 2 ]]

Альтернативный подход заключается в вызове find . Это проще тем, что find не обрабатывает файлы точек специально и не имеет ничего похожего на трудности оболочки различать образец, который соответствует одному файлу, и образцу, который остается нерасчетным, потому что он ничего не соответствует.

[ -z "$(find dir/. -name . -o -print | head -n 1)" ]
-121--111578-

Регулярные языки закрыты при дополнении, поэтому для каждого регулярного выражения существует регулярное выражение, которое точно соответствует входам, которые не совпадают с исходным regexp.

Однако в худшем случае наименьший regexp, соответствующий языку дополнения, имеет длину, экспоненциальную по длине исходного regexp. Таким образом, хотя regexp гарантированно существует, он не гарантированно будет простым. Он может быть вычислен алгоритмически , если он действительно вам нужен.

Оператор ^ для привязки regexp не является релевантным. Вы можете думать о ^ в наборе символов, как в [^ a-z] , означающем «любой символ, не являющийся строчной буквой». Это всего лишь часть контекстной нотации для наборов символов, не полезно дополнять набор последовательностей.

Некоторые механизмы регулярных выражений, такие как широко используемая PCRE, поддерживают дополнительные операторы, помимо традиционных, включая уточняющие утверждения . Отрицательный взгляд вперед обеспечивает простой способ свести на нет регулярное выражение без необходимости разбивать его на части. Проверьте документацию программного обеспечения, чтобы узнать, какие регулярные выражения оно поддерживает.

^!(.*timetosa).*$

Большинство систем не нуждаются в дополнении regexp, поскольку вы можете достичь того же эффекта, используя соответствующий флаг инверсии (например, grep -v ) или тщательно упорядочив правила в настройках первого соответствия (если он соответствует . * расписания. * , то ничего не делайте и прекращайте сопоставление правил; если он совпадает с . * , то сделайте что-нибудь).

0
27.01.2020, 20:42

Теги

Похожие вопросы