我正在尝试在bash中创建一个简单的语法突出显示器。我的目标是首先在/ tmp中复制的bash脚本,因此我可以将每个关键字替换为color + keyword + reset_color。我只是找不到(也找不到)突出显示此文件中所有字符串(在双引号“之间定义”)的方法。
[您是否有关于如何制作正则表达式(与sed一起使用的想法),这将有助于我将每个“ *”模式替换为\e[93m"*"\e39m
,其中*是引号之间的内容。
您可以尝试以下操作:
sed $'s/"[^"]*"/\e[93m&\e[0m/g' file.txt
"[^"]*"
与用双引号引起来的子字符串匹配。&
是指匹配的部分。