Regex не работает с grep

У меня есть строка, подобная этой

TEST="/dev/sda1 on /media/sda1 type vfat (rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=iso8859-1,quiet)" 

(Результат от mount | grep sda1 )

где я хочу совместить точку монтирования. Мое регулярное выражение ( принятое отсюда )

(?<=on[ \t])(.*)(?=[ \t]type)

Но по некоторым причинам это не работает для меня с несколькими инструментами (Busybox ash 1.14.2):

echo $TEST | grep -o -e '(?<=on[ \t])(.*)(?=[ \t]type)'

Не дает мне результата.

echo $TEST | awk 'match($0, /(?<=on )(.*)(?= type)/){print $0}'

Возвращает ошибку awk: bad regex '(?<=on[ ])(.*)(?=[ ]type)': Invalid preceding regular expression

expr match "$TEST" '\(?<=on[ \t]\)\(.*\)\(?=[ \t]type\)'

Также возвращает пустой результат.

Я чувствую себя глупо.

One Solution collect form web for “Regex не работает с grep”

Lookarounds – это функции регулярного выражения perl. GNU grep реализует их (с опцией -P ). Я не могу сказать, делает ли какая-либо команда busybox.

В этом случае, однако, вы просто ищете работу после «on». Выберите один из

 echo "$TEST" | awk '{for (i=1; i<=NF; i++) if ($i == "on") {print $(i+1); break}}' echo "$TEST" | sed 's/.*on[[:blank:]]\(.*\)[[:blank:]]type.*/\1/' 
  • Что означает «if echo $ line | grep -F = &> / dev / null "делать?
  • Как удалить все комментарии из файла?
  • ограничивать контекст grep частью строки результата
  • Скопируйте до определенного многострочного шаблона
  • Изменен синтаксис grep -E regex?
  • Использование grep для нахождения строки из текстового файла
  • grep -byte-offset не дает мне смещения байтов?
  • Добавить что-то в каждый список в файле
  • Выделение целых чисел, заключенных в круглые скобки
  • df -k + как совместить строку корневого тома
  • Файлы Cat 2 и избегайте дублирования строк
  • Interesting Posts

    Linux sed – поиск подстановочной строки без пробелов в ней

    Скрипт для подсчета файлов, соответствующих шаблону в подкаталогах

    Как запустить перезагрузку в качестве обычного пользователя без необходимости вводить пароль?

    IPtables – новый vs новый, установленный, связанный

    Список бинарных пакетов с варевом

    Debian 9 DM не будет загружаться после dist-upgrade

    awk – grep несколько строк и печать определенным образом

    telnet на localhost и loopback IP работает, но не LAN ip (Xen + Ubuntu)

    Проверьте, содержит ли строка строку подстроки

    Сценарий Bash, который автоматически убивает процессы, когда загрузка процессора / памяти становится слишком высокой

    Я использую `&`: почему процесс не работает в фоновом режиме?

    tmux: переназначение клавиш на панель слева / справа / сверху / вниз

    Как сгенерировать много (пустых) файлов изображений?

    Можно ли добавить домашний раздел, добавив дополнительный жесткий диск?

    Что создает / etc / hosts (RHEL 5.5)

    Linux и Unix - лучшая ОС в мире.