Como este comando sed funciona?

2

Eu preciso imprimir texto entre dois fragmentos de texto. Eu encontrei esse exemplo, que faz exatamente o que eu quero, mas eu não entendo como isso é feito. Googling é difícil porque o comando não contém letras)

sed -n '/hostname/,/$/p' /tmp/ambari-agent.ini

hostname = localhost

Pelo que entendi, aqui imprimo texto entre hostname e fim de linha. A opção p imprime padrão para saída. Mas por que eu tenho três grupos aqui e o que significa coma aqui?

    
por Dmitriusan 02.04.2013 / 19:34

1 resposta

3

Quase sempre o primeiro lugar que você deve procurar é o man pages . Eles geralmente são difíceis de ler, mas a informação está lá.

Na página manual p Print the current pattern space. , está na subseção Commands which accept address ranges . O que poderia levá-lo facilmente à ideia de que você está especificando um intervalo de endereços inicial e final usando expressões regulares, consulte a seção Addresses . Então /hostname/ é o começo e /$/ é o fim. O $ é um caractere especial que marca o final de uma linha.

    
por 02.04.2013 / 20:02

Tags