Рейтинг:0

Выбрать определенное слово из строки с помощью команд grep/awk

флаг sd
lee

Я пробовал этот cmd:

# монтировать | grep -E '\s/dev/shm\s' | awk -F "(" '{print $NF}'

Ожидания:

rw,nosuid,nodev,seclabel

Что я получаю:

rw,nosuid,nodev,seclabel)

и я также попробовал это:

гора | grep -E '\s/dev/shm\s' | awk -F "(" '{print $NF}' | cut -c -24
rw,nosuid,nodev,seclabel

Я могу получить точное слово, но по умолчанию там ни одного слова не было, это не сработает, поэтому мне нужно удалить этот символ. ) в итоге кто-нибудь об этом знает? Научи меня решать это.

FedKad avatar
флаг cn
Вы пробовали: `mount | grep -E '\s/dev/shm\s' | awk -F "[()]" '{print $2}'` ?
флаг sd
lee
Спасибо за ответ! Он отлично работает
Рейтинг:2
флаг cn

Я предполагаю, что вывод вашего гора | grep команда такая:

$ монтировать | grep -E '\s/dev/shm\s'
tmpfs в /dev/shm введите tmpfs (rw,nosuid,nodev,inode64)

Итак, вам нужен (опять же, я предполагаю здесь) текст между скобками в строках, содержащих /dev/шм. Если да, попробуйте:

$ монтировать | grep -oP '\s/dev/shm\s.+\(\K[^)]+'
rw,nosuid,nodev,inode64

вариант говорит grep чтобы напечатать только совпадающую часть строки и включает PCRE (Perl-совместимые регулярные выражения), которые дают нам для «игнорировать все совпадения до этого момента». Таким образом, регулярное выражение будет искать /dev/шм окруженные пробелами, затем как можно больше символов до открывающей скобки (.+\(). Все до сих пор игнорируется из-за а затем мы просто сопоставляем самый длинный отрезок не-) символы ([^)]+).


Если вам действительно нужно использовать аук почему-то не надо grep:

$ монтировать | awk -F'[()]' '/\s\/dev\/shm\s/{print $(NF-1)}'
rw,nosuid,nodev,inode64
флаг sd
lee
Большое спасибо! Это работает нормально.
Рейтинг:2
флаг cn

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

findmnt -n --target /dev/shm --output=параметры

Активный горы находятся в /прок/монтирует и имеет фиксированное количество столбцов, что упрощает разбор:

при чтении -r _ a _ b _; делать
    [[ $a = /dev/shm ]] && эхо $b
сделано < /proc/mounts
флаг sd
lee
Спасибо за ответ! Он отлично работает
terdon avatar
флаг cn
@lee, если один из ответов здесь решил вашу проблему, найдите время и [примите это](//askubuntu.com/help/someone-answers), нажав на галочку слева. Это лучший способ выразить благодарность на сайтах Stack Exchange.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.