substituindo string multi line por outra string multi line usando sed

1

por exemplo entrada:

// copyright

package com.base

import com.base
import com.base
...

Eu quero substituir o padrão "// copyright \ n \ n ^ package. *" por outra string

estou tentando fazer usando

sed -e 's/.,^package/$(anotherString)/g' $text 
    
por rahul 16.04.2015 / 06:13

1 resposta

1

Usando sed

Aqui está uma solução sed :

$ sed '\|// copyright|,\|^package|{s/^package/Something\nElse/p;d}' file
Something
Else com.base

import com.base
import com.base
...

Deseja remover toda a linha original package ? Se sim, apenas uma pequena alteração é necessária:

$ sed '\|// copyright|,\|^package|{s/^package.*/Something\nElse/p;d}' file
Something
Else

import com.base
import com.base
...

Usando o awk

$ awk '/^\/\/ copyright/,/^package/{if (/^package/) print "Something\nElse"; next} 1' file
Something
Else

import com.base
import com.base
...
    
por 16.04.2015 / 06:51

Tags