Você está na página 1de 11

aprendendo_expressoes_com_ex

Aprendendo expresses regulares com o editor ex Neste captulo iremos aprender mais sobre padres, filtros, expresses regulares usadas pelos utilitrios sed e awk. Assim voc precisa conhecer como construir expresses regulares usando o editor ex.

Como exemplo, criaremos um arquivo com nomes de frutas para nossos testes com o seguinte contedo:

$ nano frutas
banana uva banana banana pra caju banana banana uva banana abacaxi

Voc pode iniciar o editor ex da seguinte forma: Sintaxe: ex arquivo Exemplo: Os dois pontos : prompt de comandos do editor ex onde voc pode digitar texto, comando ou expresso regular. $ ex frutas "frutas" 5L, 57C Entering Ex mode. Type "visual" to go to Normal mode. : Assim que voc ver o prompt : possvel digitar um comando como w para salvar alteraes e x e q para sair do shell.

$ ex frutas

aprendendo_expressoes_com_ex

"frutas" 5L, 57C Entering Ex mode. Type "visual" to go to Normal mode. :w "frutas" 5L, 57C written :q

Exibindo texto em um arquivo


Primeiro abra nosso arquivo: $ ex frutas "frutas" 5L, 57C Entering Ex mode. Type "visual" to go to Normal mode. : Agora digite p e pressione ENTER

:p abacaxi : Por padro o comando p exibe a linha corrente, que neste caso a ltima linha do arquivo que est sendo aberto.

Exibindo um intervalo de linhas


Agora se voc quiser exibir o intervalo de linhas entre a linha 1 e a linha 5 (linhas 1,2.3,4 e 5), execute o seguinte comando.

: 1,5 p banana uva banana banana pra

Exibindo um intervalo de linhas

aprendendo_expressoes_com_ex

caju banana banana uva banana abacaxi :

Exibindo apenas uma linha


Para exibir a linha 2 do nosso arquivo, execute o comando: :2p pra :

Exibindo todas as linhas do arquivo


Digite o seguinte comando, onde 1 a primeira linha e o caractere especial $ significa o ltimo caractere na ltima linha. : 1,$ p banana uva banana banana pra caju banana banana uva banana abacaxi :

Exibindo numerao de linhas


Digite o seguinte comando, e repare a numerao de linhas entre a linha 1 e 3 : set number : 1,3 p
1 banana uva banana banana

Exibindo numerao de linhas

aprendendo_expressoes_com_ex

2 pra 3 caju

Se voc no quer numerao de linhas digite o seguinte comando, e repare a numerao de linhas entre a linha 1 e 3 no est sendo exibido.

: set nonumber : 1,3 p


banana uva banana banana pra caju

Copiando linhas
Para copiar a linha 1 do nosso arquivo, digite o seguinte comando, exiba o contedo em seguida e repare que o contedo da linha 1 (banana uva banana banana) foi copiado para a ltima linha (linha 6). : 1 co $
banana uva banana banana

: set number
: 1,$ p 1 banana uva banana banana 2 pra 3 caju 4 banana banana uva banana 5 abacaxi 6 banana uva banana banana

Para copiar o intervalo de linhas entre a linha 3 e linha 5 digite o seguinte comando, exiba o contedo em seguida e repare que o contedo das linhas 3, 4 e 5 foram copiados para as linhas 7, 8 e 9.

Copiando linhas

aprendendo_expressoes_com_ex

: 3,5 co $
9 abacaxi : 1,$ p 1 banana uva banana banana 2 pra 3 caju 4 banana banana uva banana 5 abacaxi 6 banana uva banana banana 7 caju 8 banana banana uva banana 9 abacaxi

Excluindo linhas
Para excluir a linha 1 do nosso arquivo, digite o seguinte comando: :1d
1 pra :

Repare que a linha 2 exibida e agora passa a ser a linha 1, pois a linha 1 com o contedo banana uva banana foi excludo.

: 1,$ p
1 pra 2 caju 3 banana banana uva banana 4 abacaxi

Excluindo linhas

aprendendo_expressoes_com_ex

5 banana uva banana banana 6 caju 7 banana banana uva banana 8 abacaxi :

Para excluir o intervalo de linhas entre a linha 1 e 3 digite o comando, e repare que restaram apenas 5 linhas

: 1,3 d
1 abacaxi :

: 1,$ p
1 abacaxi 2 banana uva banana banana 3 caju 4 banana banana uva banana 5 abacaxi :

Procurando palavras
Para localizar palavras em um arquivo voc pode executar os seguintes comandos: : /banana/ p
2 banana uva banana banana :

Ou sem especificar o comando p com apenas as barras /

Procurando palavras

aprendendo_expressoes_com_ex

: /banana/
4 banana banana uva banana :

Repare que localizado linhas por linha do arquivo, e para exibir todas as linhas de uma vez com a palavra procurada digite o comando abaixo com o comando g para localizar todas as ocorrncias da palavra procurada (banana).

: g /banana/ p
2 banana uva banana banana 4 banana banana uva banana :

Localizando e substituindo com expresses regulares


O comando abaixo diz para ir para a linha 3 e substitui a palavra caju pela palavra morango.

:3p
3 caju

: s/caju/morango
3 morango : 1,$ p 1 abacaxi 2 banana uva banana banana 3 morango 4 banana banana uva banana 5 abacaxi

Abaixo segue a explicao do comando: Comando Descrio

Localizando e substituindo com expresses regulares

aprendendo_expressoes_com_ex

3p s /caju/ morango/

Vai para a linha 3 Substitui Texto a ser localizado Texto para substituir o texto localizado

O exemplo acima no substitui todas as ocorrncias em todas as linhas do arquivo, para isso abaixo segue um exemplo onde substitui todas as ocorrncias da palavra uva por manga.

: 1,$ p 1 abacaxi 2 banana uva banana banana 3 morango 4 banana banana uva banana 5 abacaxi : 1,$ s/uva/manga/ 4 banana banana manga banana : 1,$ p 1 abacaxi 2 banana manga banana banana 3 morango 4 banana banana manga banana 5 abacaxi

Abaixo segue a explicao do comando:

Localizando e substituindo com expresses regulares

aprendendo_expressoes_com_ex

Comando :1,$ s /uva/ manga/ Substitui Texto a ser localizado

Descrio Substitui todas as linhas

Texto para substituir o texto localizado

O comando abaixo, localiza as linhas que contm a palavra banana e se for encontrada substitui a palavra banana pela palava abacate.

: 1,$ p 1 abacaxi 2 banana manga banana banana 3 morango 4 banana banana manga banana 5 abacaxi

: g /banana/ s/banana/abacate/
4 abacate banana manga banana : 1,$ p 1 abacaxi 2 abacate manga banana banana 3 morango 4 abacate banana manga banana 5 abacaxi :

Repare que no foram substitudas as primeiras ocorrncias da palavra banana em todas as linhas, para isso use duas barras aps o comando s (s//) onde substitui todas as primeiras ocorrncias da palavra

Localizando e substituindo com expresses regulares

aprendendo_expressoes_com_ex

banana pela palavra abacate em todas as linhas.

: g /banana/ s//abacate/
4 abacate abacate manga banana : g /abacate/ p 2 abacate manga abacate banana 4 abacate abacate manga banana :

Por padro o comando acima substitui somente apenas a primeira ocorrncia de uma palavra em uma linha, para substituir todas as ocorrncias de um palavra em todas as linhas, use o comando s junto com o comando g, como mostra o exemplo abaixo, onde localizado todas as ocorrncias da palavra abacate (g/abacate/) e substitui pela palavra banana (s/abacate/banana/g).

: g /abacate/ s/abacate/banana/g
4 banana banana manga banana : g /banana/ p 2 banana manga banana banana 4 banana banana manga banana :

Abaixo segue a explicao do comando: Comando g/abacate/ s /abacate/ banana/ g Texto a ser localizado Substitui Texto a ser localizado Texto para substituir o texto localizado Substitui todas ocorrncias em todas as linhas Descrio

Localizando e substituindo com expresses regulares

10

aprendendo_expressoes_com_ex

Substituindo palavras com confirmao do usurio

Depois de executar o comando ex, voc pode responder a perguntas para substituir palavras usando o comando c no final do comando, onde y substitui uma palavra ou n no substitui ou a para substituir todas as ocorrncias de uma palavra e para sair q .

:3p
3 caju

: g /caju/ s/caju/morango/gc
3 caju ^^^^y 3 morango

Salvando alteraes no ex
Para salvar digite o comando w: :w
"frutas" 5L, 59C written :

Voc pode tambm salvar e sair do ex digitando os comandos w e q juntos : wq

Saindo do ex
Para sair digite o comando q ou x :q

11

Você também pode gostar