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