帮助 sed 匹配可选换行符

帮助 sed 匹配可选换行符

我有这个 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来替换排队(即时)

相关内容