Adiciona espaço em branco à próxima linha somente após um padrão específico [duplicado]

0

Eu encontrei isso perguntado por alguém há dois anos e funcionou muito bem.

sed 's/$/      /' SUDIP1>SUDIP2

Mas eu descobri que se eu adicionar espaço em branco a cada linha, isso atrapalha os comandos sed . Gostaria de pesquisar por EQU :

EQU      
888-111-2222   T   1234

depois, desça uma linha e adicione os espaços extras no final destes tipos de linhas e deixe as outras linhas entre elas.

888-111-2222   T   1234(6 white spaces here)

Várias pessoas neste site marcaram minha pergunta como duplicada, mas não é. A pergunta que eles apontam era procurar por uma string depois que a letra C aparece e, em seguida, substituí-la por uma string diferente. Minha pergunta é diferente porque envolve adicionar espaço em branco ao final da linha e não alterar o texto na linha. Por favor, não seja tão rápido em chamar uma questão de duplicação. Isso afeta a reputação e os pontos das pessoas!

    
por 985ranch 03.02.2017 / 20:53

1 resposta

1

Se você tiver GNU sed , tente:

sed '/^EQU/ {n; s/$/      /}' SUDIP1>SUDIP2

Ou POSIX ly:

sed '/^EQU/ {
n
s/$/      /
}' SUDIP1>SUDIP2
    
por 03.02.2017 / 21:30

Tags