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

相關內容