Как сделать подсветку синтаксиса в Bash с помощью sed и Regex? - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь сделать простую подсветку синтаксиса в bash. Я нацеливаюсь на сценарий bash, который сначала копируется в / tmp, поэтому я могу заменить каждое ключевое слово на color + keyword + reset_color. Я просто не могу понять (и не найти) способ выделить все строки (определенные между двойными кавычками ") в этом файле.

У вас есть какие-либо идеи о том, как создать регулярное выражение (использовать его с sed) это поможет мне заменить каждый шаблон "*" на \e[93m"*"\e39m, где * - это содержимое между кавычками.

1 Ответ

0 голосов
/ 10 января 2020

Вы попробуете следующее:

sed $'s/"[^"]*"/\e[93m&\e[0m/g' file.txt
  • Регулярное выражение "[^"]*" соответствует подстроке, заключенной в двойные кавычки.
  • Амперсанд & в замене относится к согласованной части.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...