найти и заменить строку в строке - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь найти и заменить строки

?version(.*) -> ?versionMyVersionHere

ex:

<script src="js/script.js?versionSomeVersionHere"></script>
<script src="js/messages.js?version"></script>

<script src="js/script.js?versionMyVersionHere"></script>
<script src="js/messages.js?versionMyVersionHere"></script>

Я пробовал что-то вроде:

sed -i -e "s/\?version/?versionMyVersionHere/g" index.html

Но он добавляет текст к уже существующему ...

Спасибо, что нашли время помочь мне с этим!

Ответы [ 3 ]

0 голосов
/ 07 апреля 2020

Вы можете использовать:

sed -i 's/?version"/?versionMyVersionHere"/' index.html

Детали:

  • ? не нужно экранировать в BRE по умолчанию.
  • Убедитесь, что соответствует конечный ", чтобы избежать совпадения частичного слова.
0 голосов
/ 07 апреля 2020

Если вы хотите заменить все ?version на substitute в вашем файле index.html, выполните следующую команду:

sed -i 's/?version"/?versionMyVersionHere"/' index.html
0 голосов
/ 07 апреля 2020
sed 's#\?version.*\"#\?versionMyVersionHere\"#g'

Демо:

$echo -e '<script src="js/script.js?versionSomeVersionHere"></script>
<script src="js/messages.js?version"></script>'  |  sed 's#\?version.*\"#\?versionMyVersionHere\"#g' 
<script src="js/script.js?versionMyVersionHere"></script>
<script src="js/messages.js?versionMyVersionHere"></script>
$
...