Рейтинг:-4

Могу ли я создать свой собственный инструмент поиска grep?

флаг in

Я пытался найти конкретное устройство на моей машине. Поэтому я набрал lspci. Это дало мне большой список предметов. Слишком большой, чтобы постоянно просматривать, подключено ли мое устройство или нет. Итак, я побежал:

лспци | grep нвидиа

Это ничего не вернуло. Итак, я попробовал «Nvidia» и ничего не получил, а затем, наконец, попробовал «NVIDIA», и тогда я получил хит.

Grep кажется отличным инструментом, однако у него есть некоторые очевидные ограничения.Можно ли написать свою собственную функцию типа поиска для выполнения этой задачи и включения всех случаев в строку?

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

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

Спасибо.

TomE avatar
флаг br
Попробуйте выполнить «man grep» в терминале, чтобы получить инструкции по использованию. Grep — очень мощный инструмент. Например, чтобы сделать то, что вы пытаетесь сделать, просто добавьте параметр -i, чтобы сделать его нечувствительным к регистру, например: lspci |grep -i nvidia
pLumo avatar
флаг in
Очень плохая производительность по сравнению с `grep`, но это работает: `grepi(){ shopt -s nocasematch; в то время как IFS = строка чтения; do [[ "$line" =~ $1 ]] && printf '%s\n' "$line"; готово;}` --> `lspci | grepi nvidia`. Однако, imo, это вопрос программирования и, следовательно, здесь не по теме.
Рейтинг:6
флаг cn

человек grep даст вам информацию о том, как использовать grep. option сделает то, что вы искали: игнорировать регистр. Таким образом, команда

лспци | grep -я nvidia

получил бы NVIDIA.

Если вы хотите создать свой собственный инструмент, простой способ — определить псевдоним:

псевдоним 'grep=grep -i'

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

Это определение псевдонима действительно только для текущего сеанса. Чтобы включить эту опцию на постоянной основе, откройте ~/.bashrc файл с помощью текстового редактора и добавьте вариант в псевдоним определение, которое уже есть:

псевдоним grep='grep -i --color=auto'

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

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