Sed

幫助 sed 匹配可選的換行符

  • November 27, 2022

我有這個 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 模式以匹配可選的換行符。謝謝

這將適用於兩種情況:

$ 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替換(即時)

引用自:https://unix.stackexchange.com/questions/726439