Использование sed / grep для добавления / вставки кода перед тегом </script> - PullRequest
0 голосов
/ 08 марта 2020

Как вставить команды перед тегом </script> с помощью sed?

Пример: в настоящее время выглядит как

</script>

После того, как я хотел бы, чтобы это выглядело так:

var result = runFuntion();
alert(result)
</script>

Я пытался использовать echo 'xyz </script> foo' | sed 's/\(foo\)/bar\1/g'

Но тег </script> вызывает проблемы.

Ответы [ 2 ]

0 голосов
/ 08 марта 2020

Если вы подготовили более длинный фрагмент кода и не хотите переформатировать / экранировать его непосредственно в выражении sed, вы также можете импортировать его из файла. Предполагая, что в строке до </script> нет ничего (кроме пробелов), и у вас есть файл extension.js, содержащий:

var result = runFuntion();
alert(result);

, тогда вы можете использовать это (GNU sed):

echo '</script>' | sed '/^\s*<\/script>/ e cat extension.js'
0 голосов
/ 08 марта 2020

С GNU sed:

echo '</script>' | sed 's|</script>|var result = runFuntion();\nalert(result)\n</script>|'

или

echo '</script>' | sed 's|\(</script>\)|var result = runFuntion();\nalert(result)\n\1|'

Выход:

var result = runFuntion();
alert(result)
</script>

Я переключился с s/// на s||| .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...