sedがオプションの改行文字と一致するのを手伝ってください。

sedがオプションの改行文字と一致するのを手伝ってください。

私は1行に一致し、一致する行の下に内容を配置するこのsedパターンを持っています。これが私がこれまでにしたことです:

コンテンツ:

<element
    :sample1="foo"
    :sample-attr="$t('foo.bar')"
>

作業順序:

sed  '/:sample-attr=.*/a :new-attr="true"' file.vue

これは次のように動作し、生成します。

<element
        :sample1="foo"
        :sample-attr="$t('foo.bar')"
    :new-attr="true"
    >

ただし、一部のファイルには複数行属性があります。良い:

:sample-attr="
    $t('foo.bar')
"

オプションの改行文字と一致するようにsedパターンを調整するのに役立ちます。ありがとう

ベストアンサー1

これは両方のケースで機能します。

$ perl -0pe 's/(\s*):sample-attr="[^"]+"/$&$1:new-attr="true"/' file
<element
    :sample1="foo"
    :sample-attr="$t('foo.bar')"
    :new-attr="true"
>

あなたはperl -i -peそれを置き換えることができます待ち行列(即時)

おすすめ記事