zsh 正则表达式失败,是错误还是用户错误?

zsh 正则表达式失败,是错误还是用户错误?

这个正则表达式有效(删除-search

[~%]for i  in foo*-search-aae-status ; do echo $i(:s/-search//) ; done
foo1-aae-status
foo2-aae-status
foo3-aae-status
foo4-aae-status
foo5-aae-status

但是这个正则表达式(试图删除后面的所有内容-

[~%]for i  in foo*-search-aae-status ; do echo $i(:s/-*//) ; done
foo1-search-aae-status
foo2-search-aae-status
foo3-search-aae-status
foo4-search-aae-status
foo5-search-aae-status

我是不是漏掉了什么?我试过了,.*但还是被忽略了。

答案1

感谢来自 freenode irc 的 llua。

您可以启用 hist_subst_pattern 来执行我认为您正在尝试执行的操作

[%]setopt hist_subst_pattern
[%]print $TXT:s/-*//
foo1

相关内容