Awk

Como usar Regex com o comando 'awk'

Como usar Regex com o comando 'awk'

Uma expressão regular (regex) é usada para encontrar uma determinada sequência de caracteres em um arquivo. Símbolos como letras, dígitos e caracteres especiais podem ser usados ​​para definir o padrão. Várias tarefas podem ser facilmente concluídas usando padrões regex. Neste tutorial, mostraremos como usar padrões regex com o comando 'awk'.

Os caracteres básicos usados ​​em padrões

Muitos caracteres podem ser usados ​​para definir um padrão regex. Os caracteres mais comumente usados ​​para definir padrões de regex são definidos abaixo.

Personagem Descrição
. Corresponde a qualquer caractere sem uma nova linha (\ n)
\ Cite um novo metacaractere
^ Corresponde ao início de uma linha
$ Combine o final de uma linha
| Defina uma alternativa
() Defina um grupo
[] Defina uma classe de personagem
\C Corresponde a qualquer palavra
\ s Corresponde a qualquer caractere de espaço em branco
\ d Corresponde a qualquer dígito
\ b Corresponde a qualquer limite de palavra

Crie um arquivo

Para acompanhar este tutorial, crie um arquivo de texto chamado produtos.TXT. O arquivo deve conter quatro campos: ID, Nome, Tipo e Preço.

ID Nome Tipo Preço

p1001 Monitor Monitor de 15 "$ 100

p1002 Rato Rato A4tech $ 10

Impressora p1003 Samsung $ 50

p1004 HP Scanner Scanner $ 60

p1005 Logitech Mouse Mouse $ 15

Exemplo 1: definir um padrão regex usando a classe de caracteres

O seguinte comando 'awk' irá procurar e imprimir linhas contendo o caractere 'n' seguido pelos caracteres 'er'.

produtos $ cat.TXT
$ awk '/ [n] [er] / print $ 0' produtos.TXT

A seguinte saída será produzida após a execução dos comandos acima. A saída mostra a linha que corresponde ao padrão. Aqui, apenas uma linha corresponde ao padrão.

Exemplo 2: definir um padrão regex usando o símbolo '^'

O seguinte comando 'awk' irá procurar e imprimir linhas que começam com o caractere 'p' e incluem o número 3.

produtos $ cat.TXT
$ awk '/ ^ p.* 3 / print $ 0 'produtos.TXT

A seguinte saída será produzida após a execução dos comandos acima. Aqui, há uma linha que corresponde ao padrão.

Exemplo 3: definir um padrão regex usando a função gsub

O gsub () função é usada para pesquisar e substituir texto globalmente. O seguinte comando 'awk' irá procurar a palavra 'Scanner' e substituí-la pela palavra 'Roteador' antes de imprimir o resultado.

produtos $ cat.TXT
Produtos $ awk 'gsub (/ Scanner /, "Router")'.TXT

A seguinte saída será produzida após a execução dos comandos acima. Existe uma linha que contém a palavra 'Scanner', e 'Scanner'é substituído pela palavra'Roteador'antes que a linha seja impressa.

Exemplo 4: definir um padrão regex com '*'

O seguinte comando 'awk' iráprocurar e imprimir qualquer string que comece com 'Mo' e inclua qualquer caractere subsequente.

produtos $ cat.TXT
$ awk '/ Mo * / print $ 0' produtos.TXT

A seguinte saída será produzida após a execução dos comandos acima. Três linhas correspondem ao padrão: duas linhas contêm a palavra 'Mouse'e uma linha contém a palavra'Monitor'.

Exemplo 5: definir um padrão regex usando o símbolo '$'

O seguinte comando 'awk' irá procurar e imprimir as linhas no arquivo que terminam com o número 5.

produtos $ cat.TXT
$ awk '/ 5 $ / print $ 0' produtos.TXT

A seguinte saída será produzida após a execução dos comandos acima.  Existe apenas uma linha no arquivo que termina com o número 5.

Exemplo 6: Definir um padrão regex usando '^' e '|' símbolos

O '^o símbolo 'indica o início de uma linha, e o'|'símbolo indica uma instrução OR lógica. O seguinte comando 'awk' irá procurar e imprimir linhas que começam com o caractere 'p'e contém'Scanner' ou 'Mouse'.

produtos $ cat.TXT
$ awk '/ ^ p.* (Scanner | Mouse) / 'produtos.TXT

A seguinte saída será produzida após a execução dos comandos acima. A saída mostra que duas linhas contêm a palavra 'Mouse'e uma linha contém a palavra'Scanner'. As três linhas começam com o caractere 'p'.

Exemplo 7: Definir um padrão regex usando o símbolo '+'

O '+'operador é usado para encontrar pelo menos uma correspondência. O seguinte comando 'awk' irá pesquisar e imprimir linhas que contenham o caractere 'n' pelo menos uma vez.

produtos $ cat.TXT
$ awk '/ n + / print' produtos.TXT

A seguinte saída será produzida após a execução dos comandos acima. Aqui, o personagem 'n'contém ocorre pelo menos uma vez nas linhas que contêm as palavras Monitor, impressora e scanner.

Exemplo 8: definir um padrão regex usando a função gsub ()

O seguinte comando 'awk' irá pesquisar globalmente a palavra 'Impressora'e substitua pela palavra'Monitor'usando o função gsub ().

produtos $ cat.TXT
$ awk 'gsub (/ Printer /, “Monitor”) print $ 0' produtos.TXT

A seguinte saída será produzida após a execução dos comandos acima. A quarta linha do arquivo contém a palavra 'Impressora'duas vezes, e na saída,'Impressora'foi substituído pela palavra'Monitor'.

Conclusão

Muitos símbolos e funções podem ser usados ​​para definir padrões de regex para diferentes tarefas de pesquisa e substituição. Alguns símbolos comumente usados ​​em padrões regex são aplicados neste tutorial com o comando 'awk'.

Instale o emulador Dolphin mais recente para Gamecube e Wii no Linux
O Dolphin Emulator permite que você jogue seus jogos de Gamecube e Wii escolhidos em computadores pessoais Linux (PC). Sendo um emulador de jogo disp...
Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...