Рубрики
Uncategorized

Linux: regex.

Regex или регулярное выражение — это текстовый узор. В основном мы используем Regex для того, чтобы помочь нам поиск, обновление, … Помечено Linux, Regex, DevOps, CLI.

Regex или регулярное выражение — это текстовый узор. В основном мы используем Regex для того, чтобы помочь нам поиск, обновлять или управлять текстом. Мы можем объединить Regex с Греп , Sed или awk команда.

Базовое использование:

grep -E REGEX_PATTERN FILE.txt

Мы поговорим о том, как мы можем создать рисунок Regex. Вещь для заметок, Regex чувствителен к регистру. Я буду использовать Греп Для простых примеров. Это отобразит текст с сопоставленным шаблоном.

  • . ищет что-нибудь или заменить Отказ с любым характером
# matched with anything
grep -E . FILE.txt

# matched with 'linux' or 'lanux' or etc
grep -E l.nux FILE.txt
  • \ D для цифры в 0 — 9
# matched with all digits
grep -E '\d' FILE.txt
  • \ D для незначающих
# matched with all non digit
grep -E '\D' FILE.txt
  • \ W Для слова ( Письмо , Digit и _ )
# matched with all word
grep -E '\w' FILE.txt
  • для пробела
# matched with space
grep -E ' ' FILE.txt
  • для пробела
# matched with space
grep -E ' ' FILE.txt
  • \ T для вкладок
# matched with tab
grep -E '\t' FILE.txt
  • \ R для возврата
# matched with return
grep -E '\r' FILE.txt
  • \ n для новой линии
# matched with new line
grep -E '\n' FILE.txt
  • \ S для пробела
# matched with whitespace. Include space, tab, return, and new line
grep -E '\s' FILE.txt
  • \ S для не пробел
# matched with non whitespace
grep -E '\S' FILE.txt

[] -> Сопоставить любой символ внутри квадрата.

  • [ Linux] соответствует что-нибудь внутри квадратного кронштейна
# matched with any characters inside the square bracket
grep -E '[linux]' FILE.txt

# matched with linux and xinux
grep -E '[lx]inux' FILE.txt
  • [^ Linux] соответствует любым персонажам, кроме символов внутри квадратного кронштейна
# matched with any characters except l, i, n, u, and x
grep -E '[^linux]' FILE.txt
  • [A-Z] соответствует чему-либо в диапазоне персонажей
# matched with all lowercase
grep -E '[a-z]' FILE.txt

# matched with all uppercase
grep -E '[A-Z]' FILE.txt

# matched with all digit
grep -E '[0-9]' FILE.txt
  • \ b для границ

  • \ B для не границ

  • ^ для начала линии

# matched with anything started with l
grep -E '^l' FILE.txt
  • $ на конец линии
# matched with anything ended with x
grep -E '^x' FILE.txt
  • |. для или
# matched with linux and unix
grep -E 'linux|unix' FILE\.txt
  • * для нуля или более повторений
# matched with lnux, linux, liinux, etc
grep -E 'li*nux' FILE.txt
  • + для одного или нескольких повторений
# matched with linux, liinux, etc, but doesn't matched with lnux
grep -E 'li+nux' FILE.txt
  • ? для нуля или один экземпляры
# matched with lnux and linux
grep -E 'li?nux' FILE.txt
  • {n} для ровно n экземпляров
# matched with linuxlinuxlinux
grep -E '(linux){3}' FILE.txt

# matched with linuxxx
grep -E 'linux{3}' FILE.txt
  • {n,} для не менее n экземпляров
# matched with linuxxx with 3 or more x
grep -E 'linux{3,}' FILE.txt
  • {m, n} для между м и n экземплярами
# matched with linuxx with 2 until 4 x
grep -E 'linux{2,4}' FILE.txt

По умолчанию Quantifier — жадный Отказ Пример для слова Linux Linux Linux.

  • жадный
# matched with all stacko
print stackoverflow | grep -E 's.*o'
  • ленивый
# matched with all stackoverflo
print stackoverflow | grep -E 's.*?o'
  • { } [ ] ( ) ^ $ . | * + ? \ - Внутри квадратный кронштейн должен быть сбежен с \
# matched with period
grep -E '[\.]' FILE.txt

# matched with backslash
grep -E '[\\]' FILE.txt

Мы можем комбинировать 2 или более шаблон

# matched with text beginning with a digit and have linux word
grep -E '^[1-9]' FILE.txt | grep -E 'linux'

Оригинал: «https://dev.to/zakiarsyad/regular-expression-for-linux-command-line-man»