padrão de correspondência para a nova linha

0

mova <acd> para nova linha e valores após </acd> para nova linha

Arquivo de entrada:

abcd<acd>aghjdkadlkh</acd> <bud> dghakj </bud>

Resultado esperado:

abcd
<acd>
aghjdkadlkh
</acd>
<bud>dghakj</bud>
    
por Parthi 13.06.2017 / 04:01

1 resposta

1

sed com ERE ( -E ):

sed -E 's#</?acd>#\n&\n#g'
  • s#</?acd>#\n&\n#g substitui <acd> e </acd> por novas linhas antes e depois do padrão

Após a operação, para se livrar do espaço principal de <bud> dghakj </bud> removido também, insira um minúsculo sed :

sed -E 's#</?acd>#\n&\n#g' ... | sed 's/^ //'

Exemplo:

% sed -E 's#</?acd>#\n&\n#g' <<<'abcd<acd>aghjdkadlkh</acd> <bud> dghakj </bud>' 
abcd
<acd>
aghjdkadlkh
</acd>
 <bud> dghakj </bud>

% sed -E 's#</?acd>#\n&\n#g' <<<'abcd<acd>aghjdkadlkh</acd> <bud> dghakj </bud>' | sed 's/^ //'
abcd
<acd>
aghjdkadlkh
</acd>
<bud> dghakj </bud>
    
por 13.06.2017 / 05:42

Tags