move <acd>
to new line and values after </acd>
to new line
Input File:
abcd<acd>aghjdkadlkh</acd> <bud> dghakj </bud>
expected Output:
abcd
<acd>
aghjdkadlkh
</acd>
<bud>dghakj</bud>
move <acd>
to new line and values after </acd>
to new line
Input File:
abcd<acd>aghjdkadlkh</acd> <bud> dghakj </bud>
expected Output:
abcd
<acd>
aghjdkadlkh
</acd>
<bud>dghakj</bud>
sed
with ERE (-E
):
sed -E 's#</?acd>#\n&\n#g'
s#</?acd>#\n&\n#g
substitutes <acd>
and </acd>
with newlines before and after the patternAfter the operation, to get rid of the leading space of <bud> dghakj </bud>
removed too, tack a tiny sed
:
sed -E 's#</?acd>#\n&\n#g' ... | sed 's/^ //'
Example:
% 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>
sed -E 's#</?acd>#\n&\n#g; s#\n[[:blank:]]+#\n#g'
would do it and leave any unintended leading spaces untouched as well.