Pplware

Sabe trabalhar com expressões regulares no Linux?

A utilização de expressões regulares no Linux é algo basta comum. Na prática, as expressões regulares podem definir padrões e ser interpretadas por alguns comentos. Apesar de serem semelhantes ao globbing (utilização de wirldcards), as expressões regulares são sem dúvida mas poderosas.

Vamos a alguns exemplos.

Falar em expressões regulares não é algo novo no Pplware até porque já apresentamos aqui um artigo sobre este tema. Como referido, , as expressões regulares permitem-nos identificar padrões, num determinado texto/palavra. Lembram-se quando usam o ‘*’, como wildcard, para identificar um conjunto de ficheiros?..o principio das expressões  regulares é idêntico.

Na Internet existem alguns sites para “explorar” expressões regulares  dos quais se destaca o Regexr.

Antes de começar o que precisa de saber?

As expressões regulares podem ser definidas em duas formas: básicas ou estendidas. No que diz respeito à forma básica que vamos abordar hoje é fundamental que o utilizador saiba o seguinte:

Vamos à prática

Um dos comandos mais poderosos do Linux e que permite trabalhar com expressões regulares é o grep. Este comando permite filtrar dados de várias fontes. Vamos usar para os exemplos o ficheiro /etc/passwd onde está guardada a informação sobre os utilizadores do sistema.

Exemplo1

Saber se existe o utilizador ppinto

grep ‘ppinto’ /etc/passwd

ppinto:x:501:501::/home/ppinto:/bin/bash

Exemplo2

Saber se existe o utilizador root e se aparece logo na primeira posição da linha a pesquisar

grep ^root /etc/passwd

root:x:0:0:root:/root:/bin/bash

Exemplo 3

Saber se existe alguma linha cuja a última palavra termine em ‘h’

grep ‘h$’ /etc/passwd

root:x:0:0:root:/root:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
ppinto:x:501:501::/home/ppinto:/bin/bash

Exemplo 4

Saber se existe alguma palavra que tenha algum dos caracteres definidos

grep [int] /etc/passwd

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
ppinto:x:501:501::/home/ppinto:/bin/bash

Exemplo 5

Saber se existe alguma palavra que comece por ‘p’ tenha 4 caracteres seguidos e termine em ‘o’

grep p….o /etc/passwd

operator:x:11:0:operator:/root:/sbin/nologin
ppinto:x:501:501::/home/ppinto:/bin/bash

Exemplo 6

Saber se existe alguma palavra que comece por ‘mys’

grep ‘mys*’ /etc/passwd

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

Num próximo tutorial iremos mostrar como podemos usar expressões regulares mais complexas, recorrendo a um conjunto de exemplos práticos. Para quem precisar de uma cheat sheet aqui fica a nossa sugestão.

Exit mobile version