-
Notifications
You must be signed in to change notification settings - Fork 0
Material Complementar
O material disponível aqui deve ser usado em conjunto com as aulas.
Por padrão, sempre iremos utilizar a opção -r do sed, que habilita as expressões regulares extendidas. Alguns dos comandos podem não funcionar se você não incluir esta opção.
Retrovisores são uma forma de armazenar uma parte da pesquisa para ser utilizado depois. Ele funciona basicamente como uma variável dentro da expressão regular e do sed.
Para usarmos retrovisores, vamos criar um agrupamento de uma parte da expressão regular, usando parênteses ao redor do temo que desejamos salvar. Qunado desejarmos usar o valor encontrado, usamos o comando \1. A numeração do retrovisor é criada na ordem dos grupos, e podem haver múltiplos grupos na mesma expressão regular.
sed -r 's/([aeiou])/encontramos a vogal \1 /g' arquivo.txtO comando acima busca pelas vogais, e quando a encontra, armazena no retrovisor 1. Depois, quando desejamos usar o valor do retrovisor, usamos o comando \1, que vai ser substituído pela vogal encontrada no agrupamento.
Podemos usar o valor do retrovisor dentro da própria expressão regular. Se desejarmos alterar uma estrutura de um arquivo html, por exemplo, podemos usar sed para buscar o início e fim da tag em questão:
echo "<ul><li>Café</li><li>Leite</li></ul> <div>outro texto</div> <ol><li>Café</li><li>Leite</li></ol>" | sed -r 's/<(ul|ol)>.*<\/\1>/removida tag \1./g'O comando acima faz um grupo que busca ul ou ol dentro do html, e "seleciona" tudo o que existir até o fechamento da tag encontrada, usando o retroviso \1. Depois a tag com seus elementos filhos é substituída pela string "removida tag \1", onde \1 é o mesmo nome da tag encontrada.
Perceba que apenas ol ou ul estão dentro dos parentêses. Isso permite que apenas o nome da tag seja referênciado dentro do retrovisor, excluíndo os caracteres < e >.