パターンを新しい行に一致

パターンを新しい行に一致

<acd>新しい行に移動した後、新しい行と</acd>値に移動

入力ファイル:

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

予想出力:

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

答え1

sedERE( ) 使用-E:

sed -E 's#</?acd>#\n&\n#g'
  • s#</?acd>#\n&\n#gパターンの前後と改行文字に<acd>置き換える</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>

関連情報