O que esse comando sed significa?

0

O que isso significa em um script de shell?

| sed 's/ /':'/' | sed 's/ /-/' > file.list
    
por Matias 02.05.2017 / 18:06

1 resposta

5

Supondo que o contexto é

some-command | sed 's/ /':'/' | sed 's/ /-/' > file.list

Vamos desmembrá-lo, peça por peça. Suponha, por exemplo, que some-command seja echo 'test of the command' .

Em seguida, sed 's/ /':'/' substitui o primeiro espaço por : .

test of the commandtest:of the command

Depois disso, sed 's/ /-/' substitui o novo primeiro espaço por -

test:of the commandtest:of-the command

Esta transformação é aplicada em cada linha da saída de some-command .

Como mencionado por @Philippos nos comentários, não está claro por que : não está listado aqui. Seria melhor como

some-command | sed 's/ /:/' | sed 's/ /-/' > file.list

Mas sed não está restrito a uma única substituição por instância. Então, melhor ainda é

some-command | sed 's/ /:/; s/ /-/' > file.list
    
por 02.05.2017 / 18:15