我的一些bash脚本需要在发送之前进行整理。我想做的一件事是对所有变量名使用花括号。因此,它所说的任何地方都$PWD
应该改为${PWD}
等等。
作为测试,我使用代码
PATH=${PWD}
PATH_PATH=$PATH
PATH_PATH_PATH=$PATH_PATH
我的想法是使用正则表达式搜索并替换emacs
。查找所有变量名称(使用CTRL-ALT-S)的最佳表达式是$[A-Za-z0-9_\-]*
,所以是'a'到'z','A'到'Z','0'到'9',下划线或连字符的序列跟随'$'。此外,它仅保留已经支撑的变量名称。
现在替换:
在手册中它说替换是'M-%string RET newstring RET'。在我的电脑上'M-%'是'ESC-%'。Regexp替换为'CM-%regexp RET newstring RET'。我猜那对我来说是C-ESC-%?不幸的是,这也是KDE中“系统活动”监视器的捷径。
我现在有两个问题:
- 是否有另一种方式来调用regexp替换比C-ESC-%
- 对于上面的例子,“newstring”的表达应该是什么?
${\1}
的替换却丢失了 - 正是我需要的。还要感谢改进正则表达式 - 我默认转义连字符,因为它用于范围(如'A-Z')所以:解释。非常强大的东西