将模式匹配到新行

将模式匹配到新行

移至 <acd>新行并</acd>移至新行后的值

输入文件:

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

预期输出:

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

答案1

sed与 ERE ( -E):

sed -E 's#</?acd>#\n&\n#g'
  • s#</?acd>#\n&\n#g在模式之前和之后用换行符替换<acd>and</acd>

操作后,为了消除<bud> dghakj </bud>删除的前导空格,请添加一个小sed

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

例子:

% 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>

相关内容