sed - como se referir à correspondência externa de dentro de um bloco?

0

Por exemplo:

Eu tenho um pedaço de sed da seguinte forma:

36   sed $'
37   /^waitForVisible/ {
38       s/this/& and that/
39     s/waitForVisible/expect/
40     s/)$/).to be_visible\\n/
41   }

com a linha 38 substituindo & pela palavra this (a correspondência)

Posso fazer algo semelhante para a linha 39, mas neste caso use a correspondência encontrada para o bloco de volta na linha 37 (isto é, substituindo waitForVisible por um caractere especial)?

    
por Michael Durrant 08.09.2015 / 02:12

1 resposta

2

Sim, você pode. Se você trocar 39 por 38, poderá aproveitar o fato de que uma expressão de correspondência vazia significa repetir a última correspondência :

36   sed $'
37   /^waitForVisible/ {
39     s//expect/
38       s/this/& and that/
40     s/)$/).to be_visible\\n/
41   }

Obviamente, isso pode não ser equivalente se as linhas 38 e 39 puderem fazer substituições conflitantes.

    
por 08.09.2015 / 16:00

Tags