shell pattern
时间: 2023-10-10 07:14:20 浏览: 81
shell 编程
Shell pattern是一种用于匹配文件名或字符串的模式,常用于shell命令中。在shell pattern中,可以使用一些特殊字符来表示匹配规则,其中最常见的特殊字符包括:
- *:匹配任意字符,可以是0个或多个字符。
- ?:匹配任意单个字符。
- []:匹配括号内的任意一个字符。
- [!...]:匹配不在括号内的任意一个字符。
- [a-z]:匹配指定范围内的任意一个字符。
- {pattern1,pattern2,...}:匹配括号内的任意一个模式。
这些特殊字符可以组合使用,以满足更复杂的匹配需求。在匹配过程中,Shell pattern默认是贪婪模式,即尽可能多的匹配所搜索的字符串。但也可以使用非贪婪模式来尽可能少的匹配所搜索的字符串,可以在特殊字符后面添加 "?" 符号来表示非贪婪模式。
例如,如果要匹配所有以abc开头的文件名,可以使用shell pattern "abc*";如果要匹配所有以a或b开头的文件名,可以使用shell pattern "[ab]*"。
需要注意的是,Shell pattern与正则表达式有一些不同,虽然有些字符类似,但使用的语法和功能略有区别。 Shell pattern通常用于简单的文件名匹配,而正则表达式更适用于复杂的模式匹配。
(?=pattern): 正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。
(?:pattern): 匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
?:当该字符紧跟在任何一个其他限制符(*, +, ?, {n}, {n,}, {n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [shell常用正则表达式](https://blog.csdn.net/sws_looper/article/details/82414232)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文