Escolar Documentos
Profissional Documentos
Cultura Documentos
Aprendendo Expressoes Com Ex
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
:p abacaxi : Por padro o comando p exibe a linha corrente, que neste caso a ltima linha do arquivo que est sendo aberto.
aprendendo_expressoes_com_ex
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.
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 :
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 :
: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
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
aprendendo_expressoes_com_ex
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
aprendendo_expressoes_com_ex
: 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
10
aprendendo_expressoes_com_ex
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 :
Saindo do ex
Para sair digite o comando q ou x :q
11