gpt4 book ai didi

正则表达式匹配 linux "find"命令中的任一字符串

转载 作者:IT王子 更新时间:2023-10-29 00:18:04 24 4
gpt4 key购买 nike

我正在尝试以下操作以递归方式查找以 .py.py.server 结尾的文件:

$ find -name "stub*.py(|\.server)"

但是这不起作用。

我尝试过以下变体:

$ find -name "stub*.(py|py\.server)"

它们也不起作用。

一个简单的 find -name "*.py" 确实有效,为什么这个 regex 不起作用?

最佳答案

说:

find . \( -name "*.py" -o -name "*.py.server" \)

这样说会导致文件名与 *.py*.py.server 匹配。

来自 man find:

   expr1 -o expr2
Or; expr2 is not evaluated if expr1 is true.

编辑:如果要指定正则表达式,请使用 -regex 选项:

find . -type f -regex ".*\.\(py\|py\.server\)"

关于正则表达式匹配 linux "find"命令中的任一字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19111067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com