Se os arquivos não forem muito grandes, você poderá usar o perl no modo slurp :
$ perl -0777 -pe 's/Security-Start.*Security-End/REDACTED/s' file
Cable Type ID:135, Installation ID:62, Alpha Conductor Origin:
Tolerance Report B74 - 3rd June 1996, Beta Conductor Origin:
Tolerance Report B74 - 3rd June 1996, Phase Conductor Size:
45mm, Security: REDACTED, Location ID:889, Protective Earth Size:
67mm, Protective Earth Max Current (A): 4, Overload Time...
O parâmetro de linha de comando -0777
desativa efetivamente o separador de registro para que todo o arquivo seja slurped. O modificador s
regex faz com que o perl inclua caracteres de nova linha em .
, fazendo com que a expressão corresponda às linhas.
Como alternativa, com um loop sed:
$ sed '/Security-Start/ {:a; $!N; s/Security-Start.*Security-End/REDACTED/; t; ba}' file
Cable Type ID:135, Installation ID:62, Alpha Conductor Origin:
Tolerance Report B74 - 3rd June 1996, Beta Conductor Origin:
Tolerance Report B74 - 3rd June 1996, Phase Conductor Size:
45mm, Security: REDACTED, Location ID:889, Protective Earth Size:
67mm, Protective Earth Max Current (A): 4, Overload Time...
Com o GNU sed, você pode substituir t; ba
(ramifique-se na substituição bem-sucedida; caso contrário, ramifique para :a
) por Ta
(ramifique para :a
em un substituição bem-sucedida ).