- Как мне получить только цифры в grep?
- Как получить только числа в grep?
- 4 ответа
- Как заставить GREP выбирать только числовые значения?
- 6 ответов
- 🐧 16 опций grep, которые помогут вам в реальном мире
- Синтаксис команды
- 1. Поиск в нескольких файлах
- 2. Поиск без учета регистра
- 3. Поиск всего слова
- 4. Проверка количества совпадений
- 5. Поиск в подкаталогах
- 6. Инверсивный поиск
- 7. Печать номеров строк
- 8. Ограниченный вывод
- 9. Отображение дополнительных строк
- 10. Список имен файлов
- 11. Точный вывод строк
- 12. Совпадение по началу строки
- 13. Совпадение по концу строки
- 14. Файл шаблонов
- 15. Указание нескольких шаблонов
- 16. Расширенные выражения
- Заключение
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- 16 полезных примеров grep
- Синтаксис grep
- 1. Поиск среди нескольких файлов
- 2. Регистронезависимый поиск
- 3. Поиск слова
- 4. Вывод количества совпадений
- 5. Поиск в поддиректориях
- 6. Инверсивный поиск
- 7. Вывод нумерации строк
- 8. Ограничение вывода
- 9. Вывод дополнительных строк
- 10. Вывод списка файлов
- 11. Вывод абсолютных совпадений
- 12. Поиск совпадения в начале строки
- 13. Поиск совпадения в конце строки
- 14. Использования файла шаблонов
- 15. Поиск по нескольким шаблонам
- 16. Указание расширенных регулярных выражений
- Заключение
Как мне получить только цифры в grep?
У меня есть файл, как это:
Я хочу найти вхождение чисел в вышеуказанный файл. Я придумал:
Но это печать всего:
Скорее хочу только 34 . Есть ли способ сделать это?
Вы можете использовать grep -E для доступа к расширенному синтаксису регулярного выражения (То же, что egrep )
Я создал тестовый файл с содержанием ниже:
Теперь, чтобы извлечь только цифры из текста, который вы можете использовать
Здесь «-o» используется только для вывода соответствующего сегмента строки, а не полного содержимого строки.
Квадратные скобки (например, <и>) указывают количество совпадений. <1,4>требует, чтобы предыдущий символ или класс символов встречался хотя бы один раз, но не более четырех раз.
Надеюсь это поможет
Вы можете использовать скобочное выражение RE, [:digit:] указанное в разделе 9.3.5 стандарта POSIX , в сочетании с -o флагом для печати только соответствующих «слов»
grep -o будет печатать только соответствующую часть строки. В противном случае grep напечатает любые строки с шаблоном.
Я бы использовал curl для локального или удаленного доступа к вашему файлу, затем я бы собрал строки с числами, завернутыми в (:), затем обрезал эти фрагменты и записал в файл
принятый ответ игнорирует, что в предыдущих строках файла могут быть числа, он работает для данных примера, но что, если файл был удаленным?
Источник
Как получить только числа в grep?
У меня есть файл вроде этого:
Я хочу найти появление чисел в указанном выше файле. Я придумал:
Но это печатает целое:
Скорее я хочу только 34 . Есть ли способ сделать это?
4 ответа
Вы можете использовать grep -E для доступа к синтаксису расширенного регулярного выражения (такой же, как egrep )
Я создал тестовый файл с содержимым ниже:
Теперь, чтобы grep только цифры из текста, вы можете использовать
Здесь «- o» используется для вывода только соответствующего сегмента строки, а не полного содержимого строки.
Скользящие скобки (например, <и>) указывают количество экземпляров совпадения. <1,4>требует, чтобы предыдущий символ или класс символа должен происходить по крайней мере один раз, но не более четырех раз.
Надеюсь, что это поможет
Вы можете использовать выражение скобки RE [:digit:] , указанное в разделе 9.3.5 стандарт POSIX в сочетании с -o для печати только соответствующих слов «
grep -o будет печатать только соответствующую часть строки. В противном случае grep будет печатать любые строки с рисунком.
Я использовал бы curl для доступа к вашему файлу локально или удаленно, тогда я бы grep строк с номерами, заключенными в (:), затем вырезал эти фрагменты и записывал в файл
принятый ответ игнорирует, что в предыдущих строках файла могут быть номера, он работает для данных примера, но что, если файл был удален?
Источник
Как заставить GREP выбирать только числовые значения?
я использую df команда в скрипте bash:
этот скрипт возвращает:
но мне нужны только цифры (чтобы сделать следующее сравнение). Если я использую grep регулярное выражение без многоточия:
Я ничего не получите. Как исправить?
6 ответов
если вы попробуете:
вот подробности о -o (или —only-matching флаг) работает с страница руководства grep.
печать только совпадающих (непустых) частей совпадающих строк, причем каждая такая часть находится в отдельной выходной строке. Выходные строки используют те же разделители, что и входные, а разделители-нулевые байты, Если также используется-z (—null-data) (см. другой Опции).
grep напечатаем любую строки соответствие шаблону, который вы предоставляете. Если вы хотите напечатать только ту часть строки, которая соответствует шаблону, вы можете передать — o:
— o, —only-matching Печать только совпадающих (непустых) частей совпадающей строки с каждой такой частью в отдельной выходной строке.
нет необходимости использовать grep здесь, попробуйте следующее:
Не используйте больше команд, чем необходимо, оставьте хвост, grep и cut. Вы можете сделать это только с (простой) awk
PS: предоставление размера блока en print только de persentage немного глупо ; -) поэтому оставьте также «- B MB»
df . |на awk -Ф'[несколько разделителей полей] » $NF==»последнее поле должно быть точно — > монтируется patition »
номер из последнего поля)>’
в вашем случае, использовать:
выход: 81
Если вы хотите показать символ процента, Вы можете оставить-F’ [ % ]’, и ваше поле печати переместится на 1 Поле назад
Источник
🐧 16 опций grep, которые помогут вам в реальном мире
Перевод публикуется с сокращениями, автор оригинальной статьи Abhishek Nair .
Мощь регулярных выражений в сочетании с поддерживаемыми опциями в grep делает это возможным.
Синтаксис команды
Grep ожидает шаблон и необязательные аргументы вместе со списком файлов, если они используются без конвейера.
1. Поиск в нескольких файлах
Grep позволяет искать заданный шаблон не только в одном, но и в нескольких файлах с помощью масок (например, знака «*»):
Из приведенного вывода можно заметить, что grep печатает имя файла перед соответствующей строкой, чтобы указать местонахождение шаблона.
2. Поиск без учета регистра
G rep предлагает искать паттерн, не глядя на его регистр. Используйте флаг -i, чтобы утилита игнорировала регистр:
3. Поиск всего слова
Зачастую вместо частичного совпадения необходимо полное соответствие поисковому слову. Это можно сделать, используя флаг -w:
4. Проверка количества совпадений
Иногда вместо фактического совпадения со строкой нам необходимо количество успешных совпадений, найденных grep. Этот результат можно получить, используя опцию -c:
5. Поиск в подкаталогах
Часто требуется выполнить поиск файлов не только в текущем рабочем каталоге, но и в подкаталогах. G rep позволяет это сделать с помощью флага -r:
Как можно заметить, grep проходит через каждый подкаталог внутри текущего каталога и перечисляет файлы и строки, в которых найдено совпадение.
6. Инверсивный поиск
Если вы хотите найти что-то несоответствующее заданному шаблону, grep и это умеет при помощи флага -v:
Можно сравнить вывод команды grep по одному и тому же шаблону и файлу с флагом -v или без него. С флагом печатается каждая строка, которая не соответствует шаблону.
7. Печать номеров строк
Если хотите напечатать номера найденных строк, чтобы узнать их позицию в файле, используйте опцию -n:
8. Ограниченный вывод
Для больших файлов вывод может быть огромным и тогда вам понадобится фиксированное количество строк вместо всей простыни. Можно использовать —m[num]:
Обратите внимание, как использование флага влияет на вывод для того же набора условий:
9. Отображение дополнительных строк
Иногда необходимо вывести не только строки по некоторому шаблону, но и дополнительные строки выше или ниже найденных для понимания контекста. Можно напечатать строку выше, ниже или оба варианта, используя флаги -A, -B или -C со значением num (количество дополнительных строк, которые будут напечатаны). Это применимо ко всем совпадениям, которые grep находит в указанном файле или в списке файлов.
Ниже показан обычный вывод grep , а также вывод с флагами. Обратите внимание, как grep интерпретирует флаги и их значения, а также изменения в соответствующих выходных данных:
- с флагом —A1 выведется 1 строка, следующая за основной;
- —B1 напечатает 1 строку перед основной;
- —C1 выведет по одной строке снизу и сверху.
10. Список имен файлов
Чтобы напечатать только имя файлов, в которых найден шаблон, используйте флаг -l:
11. Точный вывод строк
Если необходимо напечатать строки, которые точно соответствуют заданному шаблону, а не какой-то его части, применяйте в команде ключ -x:
В приведенном ниже примере file.txt содержится слово «support», а строки без точного совпадения игнорируются.
12. Совпадение по началу строки
Используя регулярные выражения, можно найти начало строки:
Обратите внимание, как использование символа «^» изменяет выходные данные. Знак «^» указывает начало строки, т.е. ^It соответствует любой строке, начинающейся со слова It. Заключение в кавычки может помочь, когда шаблон содержит пробелы и т. д.
13. Совпадение по концу строки
Эта полезная регулярка способна помочь найти по шаблону конец строки:
Обратите внимание, как меняется вывод, когда мы сопоставляем символ «.» и когда используем «$», чтобы сообщить утилите о строках, заканчивающихся на «.» (без тех, которые могут содержать символ посередине).
14. Файл шаблонов
Если у вас есть некий список часто используемых шаблонов, укажите его в файле и используйте флаг -f. Файл должен содержать по одному шаблону на строку.
В примере мы создали файл шаблонов pattern.txt с таким содержанием:
Чтобы это использовать, применяйте ключ -f:
15. Указание нескольких шаблонов
G rep позволяет указать несколько шаблонов с помощью -e:
16. Расширенные выражения
G rep поддерживает расширенные регулярные выражения или ERE (похожие на egrep) с использованием флага -E.
Использование ERE имеет преимущество, когда вы хотите рассматривать мета-символы как есть и не хотите заменять их строками. Использование -E с grep эквивалентно команде egrep.
Вот одно из применений ERE, когда необходимо вывести строки, например, из больших конфигурационных файлов. Здесь использовался флаг -v, чтобы не печатать строки, соответствующие шаблону ^(#|$).
Заключение
Приведенные выше примеры – лишь верхушка айсберга. G rep поддерживает целый ряд опций и может оказаться полезным инструментом в руках специалиста, который способен эффективно его использовать. Мы можем не только взять на вооружение приведенные выше примеры, но и комбинировать их, чтобы получить требуемый результат в различных условиях.
Для дальнейшего изучения утилиты и расширения кругозора стоит почитать мануал, выполнив в терминале команду man grep, или посетить страницу с официальной документацией .
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
16 полезных примеров grep
Полезно про grep
Изначально разработанный для Unix-систем grep, является одной из наиболее широко используемых утилит командной строки в среде Linux.
grep расшифровывается как «глобальный поиск строк, соответствующих регулярному выражению и их вывод» (globally search for a regular expression and print matching lines). grep в основном ищет на основе указанного посредством стандартного ввода или файла шаблона, или регулярного выражения и печатает строки, соответствующие заданным критериям. Часто используется для фильтрации ненужных деталей при печати только необходимой информации из больших файлов журнала.
Это возможно благодаря совместной работе регулярных выражений и поддерживаемых grep параметров.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Здесь мы рассмотрим некоторые из часто используемых сисадминами или разработчиками команд grep в различных сценариях.
Синтаксис grep
Команда grep принимает шаблон и необязательные аргументы вместе со перечислять файлов, если используется без трубопровода.
1. Поиск среди нескольких файлов
grep позволяет выполнять поиск заданного шаблона не только в одном, но и среди нескольких файлах. Для этого можно использовать подстановочный символ * .
Как видно из вывода, утилита перед результатом искомого шаблона выводит также название файла, что позволяет определить где именно было найдено совпадение.
2. Регистронезависимый поиск
grep позволяет искать шаблон без учета регистра. Чтобы указать grep игнорировать регистр используется флаг –i .
3. Поиск слова
Иногда появляется необходимость поиска не части, а целого слова. В таких случаях утилита запускается с флагом -w .
4. Вывод количества совпадений
Не всегда нужно выводить результат совпадения. Иногда достаточно только количества совпадений с заданным шаблоном. Эту информацию мы можем получить с помощью параметра -c .
5. Поиск в поддиректориях
Часто необходимо искать файлы не только в текущей директории, но и в подкаталогах. grep позволяет легко сделать это с флагом -r .
6. Инверсивный поиск
Если вы хотите найти что-то, что не соответствует заданному шаблону, grep позволяет сделать только это с флагом -v .
Можно сравнить выходные резултаты grep для одного и того же шаблона и файла с флагом -v и без него. С параметром -v выводятся любые строки, которые не соответствуют образцу.
7. Вывод нумерации строк
grep позволяет нумеровать совпавшие строки, что позволяет легко определить, где строка находится в файле. Чтобы получить номера строк в выходных данных. используйте параметр –n :
8. Ограничение вывода
Результат вывода grep для файлов вроде журналов событий и т.д. может быть длинным, и вам может просто понадобиться фиксированное количество строк. Мы можем использовать -m [num] , чтобы ограничить выводимые строки.
Обратите внимание, как использование флага -m влияет на вывод grep для одного и того же набора условий в примере ниже:
9. Вывод дополнительных строк
Часто нам нужны не только строки, которые совпали с шаблоном, но некоторые строки выше или ниже их для понимания контекста.
С помощью флагов -A , -B или -C со значением num можно выводить строки выше или ниже (или и то, и другое) совпавшей строки. Здесь число обозначает количество дополнительных печатаемых строк, которое находится чуть выше или ниже соответствующей строки. Это применимо ко всем совпадениям, найденным grep в указанном файле или списке файлов.
Ниже показан обычный вывод grep, а также вывод с флагом -A , -B и -C один за другим. Обратите внимание, как grep интерпретирует флаги и их значения, а также изменения в соответствующих выходных данных. С флагом -A1 grep печатает 1 строку, которая следует сразу после соответствующей строки.
Аналогично, с флагом -B1 он печатает 1 строку непосредственно перед соответствующей строкой. С флагом -C1 он печатает 1 строку, которая находится до и после соответствующей строки.
10. Вывод списка файлов
Чтобы напечатать только имя файлов, в которых найден образец, а не сами совпадающие строки, используйте флаг -l .
11. Вывод абсолютных совпадений
Иногда нам нужно печатать строки, которые точно соответствуют заданному образцу, а не какой-то его части. Флаг -x grep позволяет делать именно это.
В приведенном ниже примере файл file.txt содержит строку только с одним словом «support», что соответствует требованию grep с флагом –x . При этом игнорируются строки, которые могут содержать слова «support» с сопутствующим текстом.
12. Поиск совпадения в начале строки
С помощью регулярных выражений можно найти последовательность в начале строки. Вот как это сделать.
Обратите внимание, как с помощью символ каретки ^ изменяет выходные данные. Символ каретки указывает grep выводить результат, только если искомое слово находится в начале строки. Если в шаблоне есть пробелы, то можно заключить весь образец в кавычки.
13. Поиск совпадения в конце строки
Другим распространенным регулярным выражением является поиск шаблона в конце строки.
В данном примере мы искали точку в конце строки. Поскольку точка . является значимым символом, нужно её экранировать, чтобы среда интерпретировала точку как команду. Обратите внимание, как изменяется вывод, когда мы просто ищем совпадения . и когда мы используем $ для указания grep искать только те строки, которые заканчиваются на . (не те, которые могут содержать его где-либо между ними).
14. Использования файла шаблонов
Могут возникнуть ситуации, когда у вас есть сложный список шаблонов, которые вы часто используете. Вместо записи его каждый раз можно указать список этих образцов в файле и использовать с флагом -f . Файл должен содержать по одному образцу на каждой строке.
В нашем примере мы создали файла шаблона с названием pattern.txt со следующим содержимым:
Для его использования используйте флаг -f .
15. Поиск по нескольким шаблонам
grep позволяет задать несколько шаблонов с помощью флага -e .
16. Указание расширенных регулярных выражений
grep также поддерживает расширенные регулярные выражения (Extended Regular Expressions – ERE) или с использованием флага -E . Это похоже на команду egrep в Linux.
Использование ERE имеет преимущество, когда вы хотите рассматривать метасимволы как есть и не хотите экранировать их. При этом использование -E с grep эквивалентно команде egrep .
Ниже приведён пример использование ERE, для вывода не пустых и не закомментированных строк. Это особенно полезно для поиска чего-то в больших конфигурационных файлах. Здесь дополнительно использован флаг –v , чтобы НЕ выводить строки, соответствующих шаблону ‘^ (# | $)’ .
Заключение
Приведенные выше примеры являются лишь верхушкой айсберга. grep поддерживает ряд вариантов и может быть очень полезным инструментом в руке человека, который знает, как его эффективно использовать. Мы можем не только использовать приведенные выше примеры, но и комбинировать их различными способами, чтобы получить то, что нам нужно. Для получения дополнительной информации можно воспользоваться встроенной системой справки Linux – man .
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Источник